【问题标题】:Difference between removing a view and setting it's visibility as GONE?删除视图和将其可见性设置为 GONE 之间的区别?
【发布时间】:2014-08-18 08:44:48
【问题描述】:

从父视图中移除视图和将其可见性设置为 GONE 有什么区别?

【问题讨论】:

    标签: android android-view visibility


    【解决方案1】:

    如果您从父视图中删除视图,则它不再在其子视图列表中。然后,您可以将其添加到任何其他 ViewGroup。如果你循环遍历旧的父级,它不会出现,并且当 ViewGroup 执行调整自身大小等操作时也不会调用它。

    如果你让它 GONE,它仍然是 ViewGroup 的子级。它不能添加到另一个,因为它只能有 1 个父级。仍然会调用它来调整视图组的大小。

    【讨论】:

    • 致建议编辑的人说隐形视图仍然占用空间-是的,隐形视图确实如此。 GONE 视图没有。
    【解决方案2】:

    如果您将视图的可见性设置为 GONE,它将看起来不再存在,但它实际上存在于其父级中,它就在那里,您仍然可以随意操作它,但是,如果您删除该视图从它的父母那里,它实际上会因为所有的后果而脱离它。 例如:如果您从 LinearLayout 中删除一个视图,它不会在该 linearLayout 内部,因此它不会受到其父级重力的影响,但如果您只是将视图可见性设置为 GONE,它仍然是受其父重力影响,即使您看不到它,因为您的视图是不可见的。

    如果听起来有点不清楚,我很抱歉,但这对我来说有点难以解释。

    【讨论】:

    • 感谢您的回答,您的 LinearLayout 示例让我更好地理解了其中的区别。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多