这个问题源于必须动态显示/隐藏不同的 View 。 View 有 3 种可见性设置 - 可见、不可见和消失。如果您有一个父 View ,例如一个 LinearLayout
,它有多个 subview (不管它们是什么),则将父 View 的可见性设置为与所有 subview 的可见性相同独立?例如,如果我说
LinearLayout container = (LinearLayout) findViewById(R.id.layout_1);
container.setVisiblity(View.GONE);
这与查找每个单独的 subview 并将所有这些可见性设置为 View.GONE
相同吗?如果父级不是 View.GONE
而是 View.INVISIBLE
怎么办?是不是所有的 child 都还在画,只是没看到?
最佳答案
效果是一样的,但它实际上并没有设置所有 child 的可见性。它只是不会吸引他们。
例如:
-
将子级设置为 GONE(父级可见,子级已消失)
-
将父级设置为 GONE(均已消失)
-
将父级设置为可见(父级可见,子级仍然消失,因为之前已明确设置了子级)
-
将子级设置为 VISIBLE(均可见)
任何时候 View 是不可见的,它都不会绘制它或其 subview 。如果它已经消失,它也不会为它们保留任何布局空间。如果您检查 child 的 getVisibility()
,您会发现它仍然设置为之前的状态,即使它没有被绘制。
关于android - 设置父 View 可见性对其 subview 的影响,我们在Stack Overflow上找到一个类似的问题: android - Effect of setting parent view visiblity on its children - Stack Overflow