View.GONE不适用于"Constraint.Group"特定的子项

Pet*_*der 15 android android-constraintlayout

我正在尝试"Constraint.Group"并且我有孩子的观点:A,B,C.

在代码中,"Constraint.Group".visibility = View.Gone确实有效,但如果我选择这样做A.visibility = View.Gone不会对子视图产生影响.这是正常的行为吗?

Che*_*amp 14

它看起来确实像组可见性胜过组中各个视图的可见性。这是有道理的,因为每个视图中定义了一些知名度(GONEVISIBLEINVISIBLE)所以,如果一个人视图的可见性设置很荣幸,该组的完整性将受到侵犯。换句话说,从本质上讲,我们更改了可见性的个人视图将不属于该组。


Nic*_*rdi 5

我同意 Cheticamp 并想补充一点,您必须像他所说的那样单独切换可见性,或者创建一个通用组来更改内部的所有视图,并创建一个本地组来仅更改特定视图,如下所示:

<ImageView
    android:id="@+id/view1"
    android:layout_width="0dp"
    android:layout_height="0dp"
    />

<ImageView
    android:id="@+id/view2"
    android:layout_width="0dp"
    android:layout_height="0dp"
    />

<android.support.constraint.Group
        android:id="@+id/group1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:constraint_referenced_ids="view1,view2" />

<android.support.constraint.Group
        android:id="@+id/group2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:constraint_referenced_ids="view1" />
Run Code Online (Sandbox Code Playgroud)

无法更改组内的单个视图可见性,但通过这种方式您可以更改组 1 可见性或组 2 可见性。

  • 这会起作用,但是使用组的所有好处都消失了( (3认同)