Предполагая, что у нас есть текстовое представление, «наложенное» на контейнерное представление, путем установки ограничений текстового представления, как показано ниже, возможно ли получить контейнерное представление wrap_content аналогично тому, как группы представлений переносят своих детей?
Я понимаю, что ContrainstLayout - это плоская схема, хотя мне любопытно, есть ли простой способ добиться этого, которого мне не хватает.
Это для пользовательского представления, так что в качестве обходного пути я в настоящее время вручную устанавливаю ширину контейнера в соответствии с измеренной шириной текстового представления, что выглядит довольно грязно -
post {
val lp = layoutParams
if (lp.width == WRAP_CONTENT) {
lp.width = title_txt.measuredWidth
layoutParams = lp
}
}
Пробовал различные комбинации 0dp / wrap_content / constrained_width = "true" и т. Д.
<View
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constrainedWidth="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@color/green"/>
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test1"
android:textSize="28dp"
android:textColor="@color/white"
android:background="@color/blue"
android:layout_margin="4dp"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="@id/container"
app:layout_constraintEnd_toStartOf="@id/tv2"
app:layout_constraintTop_toTopOf="@id/container"
app:layout_constraintBottom_toBottomOf="@id/container"
/>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="test2"
android:textSize="28dp"
android:layout_margin="4dp"
android:textColor="@color/white"
android:background="@color/blue"
app:layout_constraintStart_toEndOf="@id/tv1"
app:layout_constraintEnd_toEndOf="@id/container"
app:layout_constraintTop_toTopOf="@id/container"
app:layout_constraintBottom_toBottomOf="@id/container"
/>
Что я получаю:
![](https://i.imgur.com/WNwlk9f.png)
Что я хочу:
![](https://i.imgur.com/H5ior7o.png)