Android - 父 View 可见性对其 子view 的影响

这个问题源于必须动态显示/隐藏不同的 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 的可见性。它只是不会吸引他们。

例如:

  1. 将子级设置为 GONE(父级可见,子级已消失)

  2. 将父级设置为 GONE(均已消失)

  3. 将父级设置为可见(父级可见,子级仍然消失,因为之前已明确设置了子级)

  4. 将子级设置为 VISIBLE(均可见)

任何时候 View 是不可见的,它都不会绘制它或其 subview 。如果它已经消失,它也不会为它们保留任何布局空间。如果您检查 child 的 getVisibility(),您会发现它仍然设置为之前的状态,即使它没有被绘制。

关于android - 设置父 View 可见性对其 subview 的影响,我们在Stack Overflow上找到一个类似的问题: android - Effect of setting parent view visiblity on its children - Stack Overflow

参考文章:android - 设置父 View 可见性对其 subview 的影响 - IT工具网

猜你喜欢

转载自blog.csdn.net/github_27263697/article/details/132099756