View.GONE не работает с определенными детьми "Constraint.Group"
Я экспериментирую с "Constraint.Group"
и у меня есть представления детей: A, B, C.
В коде "Constraint.Group".visibility = View.Gone
работает, но если я выберу A.visibility = View.Gone
это не повлияет на просмотр детей. Это нормальное поведение?
Ответы
Ответ 1
Похоже, видимость группы превосходит видимость отдельных видов группы. Это имеет смысл, поскольку для каждого представления определена некоторая видимость (GONE
, VISIBLE
, INVISIBLE
), поэтому, если соблюдена настройка видимости отдельного вида, целостность группы будет нарушена. Другими словами, индивидуальный взгляд, который мы изменили, не стал бы частью группы.
Ответ 2
Я согласен с 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" />
Невозможно изменить видимость одного представления внутри группы, но таким образом можно изменить видимость group1 или group2.