ConstraintLayout - 匹配另一个视图的约束但添加边距以使其更大
ConstraintLayout - Match another view's constraints but add margin to make it larger
我有一个 TextView,它的宽度和高度在运行时根据提供给它的文本正文进行解析。然后我有另一个视图,它需要与 TextView 的 top/bottom/start/end 约束完全匹配,但要大 16dp。这是我尝试过的:
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="Test title"
/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="@id/title"
app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="@id/title"
app:layout_constraintEnd_toEndOf="@id/title"
android:layout_margin="16dp"
/>
16dp layout_margin 使 View 16dp 在所有 4 个方向上都比 TextView 小,而我想让它 16dp 大。到目前为止,我发现的唯一解决方案是声明 4 个空间(每个空间距离约束之一 16dp),然后将视图约束到这些空间,老实说,这对于应该是一个简单的布局规则来说似乎有点过分了。约束布局是否提供了实现此目的的更简单方法?
对于 View,将页边距设置为 -16dp
,如下所示:
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="-16dp"
android:layout_marginTop="-16dp"
android:layout_marginEnd="-16dp"
android:layout_marginBottom="-16dp"
app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintEnd_toEndOf="@id/title"
app:layout_constraintStart_toStartOf="@id/title"
app:layout_constraintTop_toTopOf="@id/title" />
不要设置android:layout_margin="-16dp"
。它不会起作用。
我正在使用 ConstraintLayout 版本 2.1.0。早期版本不允许使用负边距。
在这张图片中,我重新排列了视图并设置了背景颜色以突出显示视图的范围。
我有一个 TextView,它的宽度和高度在运行时根据提供给它的文本正文进行解析。然后我有另一个视图,它需要与 TextView 的 top/bottom/start/end 约束完全匹配,但要大 16dp。这是我尝试过的:
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="Test title"
/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="@id/title"
app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="@id/title"
app:layout_constraintEnd_toEndOf="@id/title"
android:layout_margin="16dp"
/>
16dp layout_margin 使 View 16dp 在所有 4 个方向上都比 TextView 小,而我想让它 16dp 大。到目前为止,我发现的唯一解决方案是声明 4 个空间(每个空间距离约束之一 16dp),然后将视图约束到这些空间,老实说,这对于应该是一个简单的布局规则来说似乎有点过分了。约束布局是否提供了实现此目的的更简单方法?
对于 View,将页边距设置为 -16dp
,如下所示:
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="-16dp"
android:layout_marginTop="-16dp"
android:layout_marginEnd="-16dp"
android:layout_marginBottom="-16dp"
app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintEnd_toEndOf="@id/title"
app:layout_constraintStart_toStartOf="@id/title"
app:layout_constraintTop_toTopOf="@id/title" />
不要设置android:layout_margin="-16dp"
。它不会起作用。
我正在使用 ConstraintLayout 版本 2.1.0。早期版本不允许使用负边距。
在这张图片中,我重新排列了视图并设置了背景颜色以突出显示视图的范围。