Constraint中的android:visibility和PropertySet android:visibility有什么区别
What is the different between android:visibility and PropertySet android:visibility in Constraint
我刚开始使用 MotionLayout
。经过测试,我发现我可以同时使用 android:visibility="gone"
或 PropertySet android:visibility="gone"
来隐藏视图。
<Constraint android:id="@+id/text_video_title"
android:visibility="gone"
>
<PropertySet android:visibility="gone" />
</Constraint>
我检查了 MotionLayout document 但它没有提到。主题之间有什么不同吗?可能使用 PropertySet android:visibility
有一些好处
好问题。
默认情况下,布局文件中存在的约束被用作约束集中的默认值。
ConstraintLayout 或 MotionLayout 的布局文件可以包含 3 种类型的属性。
- 影响布局的约束
- 应用 post 布局的视图变换,例如 scaleX、旋转
- 子类特定属性,例如文本
约束集
如果您在 <Constraint>
标签中有多个 android:id 属性。
它消除了所有潜在的约束(类型 1 和 2)。这意味着您需要定义布局该视图所需的所有约束(例如 layout_constraintTop_toTopOf=.. )
如果您只有 id 并且有子部分,例如 <PropertySet> <Transform> <layout>
它只会擦除您定义的那些部分。
2.1 添加了 <ConstraintOverride>
,它只会覆盖您放置的标签,但您不能覆盖 layout_constraintXXX 标签。
我刚开始使用 MotionLayout
。经过测试,我发现我可以同时使用 android:visibility="gone"
或 PropertySet android:visibility="gone"
来隐藏视图。
<Constraint android:id="@+id/text_video_title"
android:visibility="gone"
>
<PropertySet android:visibility="gone" />
</Constraint>
我检查了 MotionLayout document 但它没有提到。主题之间有什么不同吗?可能使用 PropertySet android:visibility
好问题。 默认情况下,布局文件中存在的约束被用作约束集中的默认值。
ConstraintLayout 或 MotionLayout 的布局文件可以包含 3 种类型的属性。
- 影响布局的约束
- 应用 post 布局的视图变换,例如 scaleX、旋转
- 子类特定属性,例如文本
约束集
如果您在 <Constraint>
标签中有多个 android:id 属性。
它消除了所有潜在的约束(类型 1 和 2)。这意味着您需要定义布局该视图所需的所有约束(例如 layout_constraintTop_toTopOf=.. )
如果您只有 id 并且有子部分,例如 <PropertySet> <Transform> <layout>
它只会擦除您定义的那些部分。
2.1 添加了 <ConstraintOverride>
,它只会覆盖您放置的标签,但您不能覆盖 layout_constraintXXX 标签。