在android中,如果我从其父视图中删除视图与隐藏父视图中的子视图(消失+不可见)。我知道隐藏视图仍会保留在内存中,但是说到父视图的物理外观,它会有什么不同吗?如果答案没有区别,这是否意味着当我隐藏子视图时,子视图的整个布局基本上不存在于父视图中?
首先,GONE 和 INVISIBLE 是两个不同的东西。
当您使用 GONE 更改可见性时
该视图是不可见的,并且不占用任何布局空间。
但另一方面,当您使用 INVISIBLE 更改可见性时
该视图是不可见的,但出于布局目的它仍然占用空间。
所以真正的问题是 REMOVE 与 GONE
当您删除视图时,它将从布局的层次结构中删除。这意味着它不再是其父母的孩子。所以这个视图现在可以在任何其他 ViewGroup 中使用。
当您将可见性更改为“GONE”时,它会变得不可见,并且分配的空间也会被删除,但它仍然是其父级的子级。因此,它不能在任何其他 ViewGroup 中使用,因为子视图只能有一个父视图。
何时使用删除
对我来说,如果您要将视图移动到另一个视图组,或者想要永久隐藏它,则必须删除视图。
何时使用 GONE
当您想要切换可见性以及在父视图中为其分配的空间时。当visibility设置为GONE后,用户一开始就无法区分View是否存在。
何时使用隐形
与 GONE 类似,当您想要切换可见性,但又不想删除父视图中为其分配的空间时。所以用户界面看起来就像隐藏了一些东西。
| 归档时间: |
|
| 查看次数: |
943 次 |
| 最近记录: |