首先说一下 view visibility VISIBLE、INVISIBLE、GONE的区别:

可见(visible)

XML文件:android:visibility="visible"

Java代码:view.setVisibility(View.VISIBLE);



不可见(invisible)

XML文件:android:visibility="invisible"

Java代码:view.setVisibility(View.INVISIBLE);



隐藏(GONE)

XML文件:android:visibility="gone"

Java代码:view.setVisibility(View.GONE);



VISIBLE:设置控件可见

INVISIBLE:设置控件不可见

GONE:设置控件隐藏



而INVISIBLE和GONE的主要区别是:

当控件visibility属性为INVISIBLE时,界面保留了view控件所占有的空间;

而控件属性为GONE时,界面则不保留view控件所占有的空间。

下面开始进入正题,我的问题是出现在一个

PopupWindow 里面 含有一个 FrameLayout 布局,里面有一个 ListView,同时有一个 TextView,TextView visibility属性 GONE

当我们发现个别时候 Listview 在刷新后不能正常显示了(原来以为是数据问题,后来排除掉了),机率非常少,可能是百分之一,
但非常严重,不能恢复,重现很困难,但还是花时间重现了。
发现它的 visibility 属性 自动变成了 GONE,而和它同位置的 TextView 变成了 VISIBLE。 原因:可能是刷新过度造成,当为数据为空时我不再刷新,好像没有重现过,当然已经花了时间重现问题,
最好设置一下,如果发现 ListView visibility 属性为 GONE,设置为 VISIBLE,同时把TextView visibility 属性设置为 GONE
我尝试了一下,这样就没有问题了。 但是更深层原因,可能就没有办法去找了,如果有人知道可以在评论中回复一下,非常感谢。

android View 自动 GONE 问题的更多相关文章

  1. Android View自动生成插件

    在ButterKnife这样强大的注入库出来之后,使用注入进行UI开发已经非常普遍.但考虑到效率.学习成本等问题,findViewById方式仍然是不错的选择. 但是当页面UI变得复杂后,我们从Lay ...

  2. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

    有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextV ...

  3. Android应用自动更新功能的代码实现

    由于Android项目开源所致,市面上出现了N多安卓软件市场.为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量.因此我们有必 ...

  4. Android View之用户界面...

    PS:Android的控件真的是很多...现在还在忙到控件...也是神了.... 学习内容: 1.Spinner下拉菜单... 2.AutoComplete TextView自动完成文本框... 1. ...

  5. Android:TextView 自动滚动(跑马灯) (转)

    Android:TextView 自动滚动(跑马灯)       TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true ...

  6. bug_ _ android.view.InflateException: Binary XML file line #2: Error inflating class <unknown

    ========= 5.0     android异常“android.view.InflateException: Binary XML file line # : Error inflating ...

  7. Android 实现自动接听和挂断电话功能

    添加权限 <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permis ...

  8. Android - 软件自动更新的实现

    转自:http://blog.csdn.net/wwj_748/article/details/8195565 接触到一个很实用的技术,那就是软件自动更新.一般开发者是通过自行在应用平台添加更新版本的 ...

  9. Android invalidate()自动清屏,屏幕刷新

    invalidate()是用来刷新View的,必须是在UI线程中进行工作.比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面.invalidate()的调用是把之前的旧 ...

随机推荐

  1. Javascript 图片左右滑动与切换

    Html代码 : <div class="v_out v_out_p"> <div class="prev"> <a href=& ...

  2. bzoj1015 星球大战

    Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...

  3. QueryRunner的API

    org.apache.commons.dbutils Class QueryRunner java.lang.Object org.apache.commons.dbutils.AbstractQue ...

  4. C++开发者都应该使用的10个C++11特性

    转载自http://blog.jobbole.com/44015/ 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛.不过我相信这些新特性当中有一些,应该成为所有C++开 ...

  5. C#多线程编程(转)

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行. 二.基本知识 1.进程与线程:进程作为操作系统执行程序 ...

  6. HDU 3709 Balanced Number (数位DP)

    Balanced Number Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  7. php之form表单

    <!DOCTYPE HTML> <html> <head> <title>form</title> <style type=" ...

  8. JAVA算数运算符

    算数运算符 序号 算数运算符 含义用法 特殊含义用法 1 + 加法 字符串连接 2 - 减法   3 * 乘法   4 / 除法   5 % 取余   实例: public class Test{ p ...

  9. scrapy 模拟登录后再抓取

    深度好文: from scrapy.contrib.spiders.init import InitSpider from scrapy.http import Request, FormReques ...

  10. 109、FragmentPagerAdapter与FragmentStatePagerAdapter区别

    x 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时, ...