设置父母视角对其子女的影响

Rar*_*arw 19 android android-layout android-linearlayout android-view

这个问题源于必须动态地显示/隐藏不同的视图.View有3个可见性设置 - 可见,不可见和消失.如果你有一个父视图,例如a LinearLayout,它有几个子视图(无关紧要)是设置父视图的可见性与在所有子视图上独立设置visiblity相同?例如,如果我说

LinearLayout container = (LinearLayout) findViewById(R.id.layout_1);
container.setVisiblity(View.GONE);
Run Code Online (Sandbox Code Playgroud)

这与查找每个子视图并将所有这些可见性设置为相同View.GONE吗?如果父母不是View.GONE,View.INVISIBLE怎么办?所有的孩子还在画画但是还没有看到吗?

Geo*_*its 33

效果是一样的,但它实际上并没有设置所有儿童的关注.它不会吸引它们.

例如:

  1. 将孩子设置为GONE(父母可见,孩子不见了)

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

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

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

任何时候视图都是INVISIBLE,它不会绘制它或它的子节点.如果它是GONE,它也不会为它们保留任何布局空间.如果你检查孩子getVisibility(),你会发现它仍然设置为之前的状态,即使它没有被绘制.

  • 这种行为对我来说没有意义,特别是因为它在处理 XML 膨胀时是不同的(即可见性传播给孩子)。是否有解决方法可以使其在 XML 和 Java 之间保持一致? (3认同)