【发布时间】:2019-02-10 23:29:34
【问题描述】:
我有带有嵌套 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 是否考虑 Group 的?
更新
我正在尝试直接在没有组的视图中使用可见性。它的作品(可见性更改在布局检查器中是正确的)。但我遇到了另一个问题 - 一些视图被破坏了。我认为,因为 View 在第一个 xml 中具有属性 app:layout_constraintTop_toTopOf="parent" 并且在另一个布局中具有其他属性,但是不需要旧的 attr !我无法清理旧属性并应用新属性?
【问题讨论】:
-
我认为最后是
set.load而不是set2.load是错字? -
是的,错字。非常感谢
标签: android android-constraintlayout