zoukankan      html  css  js  c++  java
  • android View 自动 GONE 问题

       首先说一下 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
    我尝试了一下,这样就没有问题了。
    
    但是更深层原因,可能就没有办法去找了,如果有人知道可以在评论中回复一下,非常感谢。
    

  • 相关阅读:
    LintCode "Binary Tree Serialization"
    LeetCode "Find the Duplicate Number"
    LintCode "Route Between Two Nodes in Graph"
    LintCode "Search a 2D Matrix II"
    LintCode "Submatrix Sum"
    LintCode "Sort Letters by Case"
    LeetCode "Peeking Iterator"
    LintCode "Sort Colors II"
    LeetCode "Move Zeroes"
    LintCode "Update Bits"
  • 原文地址:https://www.cnblogs.com/sharecenter/p/5621049.html
Copyright © 2011-2022 走看看