我不确定在屏障周围的ConstraintLayout中指定边距的最佳方法。
我尝试将它们设置在barrier元素中,但这没有任何效果,而且我也找不到任何文档。
<androidx.constraintlayout.widget.Barrier
android:id="@+id/detail_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="top"
android:layout_marginBottom="8dp"
app:constraint_referenced_ids="detail_header_1,detail_header_2" />
答案 0 :(得分:4)
使用azEf推荐的方法行得通,但是您需要2个视图而不是1个视图,并且障碍也会在“布局预览”中消失。内置的方法是app:barrierMargin
。示例:
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_available"
app:layout_constraintStart_toStartOf="@id/panelStart" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/iconEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierMargin="10dp"
android:orientation="vertical"
app:barrierDirection="end"
app:constraint_referenced_ids="icon" />
<TextView
style="@style/title_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/iconEnd"
tools:text="Title" />
答案 1 :(得分:0)
您可以将Space
视图限制为障碍,并在其上添加边距。
<androidx.constraintlayout.widget.Barrier
android:id="@+id/detail_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="top"
app:constraint_referenced_ids="detail_header_1,detail_header_2" />
<Space
android:id="@+id/detail_space"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
app:layout_constraintTop_toTopOf="@id/details_barrier" />