gpt4 book ai didi

android - ConstraintSet 是否适用于 Group?

转载 作者:行者123 更新时间:2023-11-29 18:44:58 26 4
gpt4 key购买 nike

我有带嵌套 ConstraintLayout 的布局,以及其他带约束的布局,以便将它们应用于第一个布局。我正在尝试通过应用不同的 ConstraintSet 来使用组约束来隐藏/显示一些 View 。

<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 中使用可见性。它的作品(可见性变化在布局检查器中是正确的)。但我遇到了另一个问题——一些 View 被破坏了。我认为,因为 View 在第一个 xml 中具有属性 app:layout_constraintTop_toTopOf="parent" 并且在另一个布局中具有其他属性,但是不需要旧的 attr!我不能清理旧属性并应用新属性吗?

最佳答案

我不太了解约束组字段。

但我正在观察布局,而您在组对象中使用了 visibility="gone"。

例如,如果您将一些 View 附加到组,您可以更改项目的可见性状态,只需更改组的可见性

example_layout

<android.support.constraint.ConstraintLayout ...>
<TextView
android:id="@+id/text1" ... />
<TextView
android:id="@+id/text2" ... />
<android.support.constraint.Group
android:id="@+id/group"
...
app:constraint_referenced_ids="text1,text2" />
</android.support.constraint.ConstraintLayout>

然后在 Activity/Fragment 中,您应该能够根据您的条件更改 Java 中的状态。

Group group = findViewById(R.id.group);
//Change the visibility when you need it.
group.setVisibility(View.GONE or View.VISIBLE);

希望对大家理解Group字段有帮助。

关于android - ConstraintSet 是否适用于 Group?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52191562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com