在android中,如果我从其父级删除视图,则隐藏父级中的子视图(GONE + Invisible)。我理解隐藏的视图仍然会在内存中,但说到父视图的外观会有什么不同吗?如果答案没有区别,这是否意味着当我隐藏它时父子视图的整个布局基本上不存在?
答案 0 :(得分:3)
GONE& INVISIBLE是两个不同的东西。
使用GONE更改可见性时
此视图不可见,并且不会占用任何空间进行布局。
但另一方面,当您使用INVISIBLE
更改可见性时此视图不可见,但仍会占用布局空间。
所以真正的问题是REMOVE vs GONE
删除视图后,它将从布局的层次结构中删除。这意味着它不再是它的父母的孩子。因此,此视图现在可以在任何其他ViewGroup中使用。
当您将可见性更改为GONE时,它会变为不可见,并且已删除分配的空格,但它仍然是其父级的子级。因此,它不能在任何其他ViewGroup中使用,因为子项只能有一个父项。
何时使用REMOVE
对我来说,如果要将View移动到另一个ViewGroup,或者想要永久隐藏它,则必须删除视图。
何时使用GONE
如果要切换可见性,以及在父视图中为其分配的空间。在将可见性设置为GONE后,用户无法区分是否首先存在视图。
何时使用INVISIBLE
与GONE类似,当您想要切换可见性时,但您不想在父视图中删除为其分配的空间。因此,UI看起来就像是隐藏的东西。