android - 设置父 View 可见性对其 subview 的影响

标签 android android-layout android-linearlayout android-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上找到一个类似的问题: https://stackoverflow.com/questions/19775407/

相关文章:

java - Android:从java项目调用python代码

Android XML 切断布局的下半部分

java - 自定义线性布局未显示

java - Android 2.3 设备上的 USB 主机开发

android - 加速度计值表现得像倾斜仪?

android - 如何更改primary和primaryDark颜色?

java - Android 自定义组件 : layout_width attribute not found

Android 可检查的 LinearLayout 状态

java - 由于 mContext 对象,Android 中的编译错误

java - 更改登录按钮上的 Facebook Logo 颜色