app:layout_goneMarginLeft
及其变体如何影响约束布局中的视图排列?
答案 0 :(得分:4)
希望这个例子可以帮助您理解这个简单的概念-
考虑ID为2 TextViews
和textView1
的{{1}},其中textView2
在textView2
的末尾具有0dp约束。
情况1:当textView1
的能见度为textView1
时,VISIBLE
将恰好位于textView2
的右边,且边距为0dp。
textView1
情况2:当<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/form_field_background"
android:padding="5dp"
android:text="TextView1"
android:visibility="visible" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/form_field_background"
android:padding="5dp"
android:text="TextView2"
app:layout_constraintStart_toEndOf="@+id/textView1"
app:layout_goneMarginLeft="10dp"
app:layout_goneMarginStart="10dp" />
</android.support.constraint.ConstraintLayout>
的可见性为textView1
时,GONE
会将其marginLeft设置为10dp,因为我已经指定了textView2
app:layout_goneMarginLeft="10dp"
答案 1 :(得分:0)
例如,当您使用view.GONE
时,例如在将视图B约束到另一个视图A并在逻辑/代码中的某个点时,将视图A的可见性更改为app:layout_goneMarginLeft=""
将保留页边距或像文档中所说的那样:
您还可以指示要使用的其他保证金值
您可以找到示例here。