У меня есть макет с вложенным ConstraintLayout и другой макет с ограничениями для применения их к первому макету. Я пытаюсь использовать групповое ограничение для скрытия / отображения некоторых представлений посредством применения различных ConstraintSet.
<layout>
<LinearLayout>
<!-- Some Views here -->
<android.support.constraint.ConstraintLayout>
<!-- Some ImageViews with constraints (for different layouts images) -->
<android.support.constraint.Group
android:id="@+id/invisible_cells"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
app:constraint_referenced_ids="image2,image3,image4"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</LinearLayout>
</layout>
И другой макет только с другими ограничениями:
<android.support.constraint.ConstraintLayout>
<!-- Some ImageViews with constraints (for different layouts images) -->
<android.support.constraint.Group
android:id="@+id/invisible_cells"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
app:constraint_referenced_ids="image4" <<=== other ids!
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
и применить:
ConstraintSet set2 = new ConstraintSet();
set2.load(context, R.layout.item_news_photos_constraints_2);
//...
set2.applyTo(binding.constraintLayout);
Это меняет ограничения ImageView, но видимость не меняется ..
Что я делаю не так? ConstraintSet принимать во внимание группы или нет?
Обновление
Я пытаюсь использовать видимость непосредственно в представлениях без группы. Его работы (изменения видимости прямо в макете инспектора). Но я столкнулся с другой проблемой - некоторые взгляды нарушены. Я думаю, потому что View имеет атрибут app:layout_constraintTop_toTopOf="parent"
в первом xml и другие атрибуты в другом макете, но старый attr не нужен! Я не могу очистить старые атрибуты и применить новые?