Почему добавление представления в мой макет меняет ширину всего макета?

Я добавил «Вид» в нижней части моего макета, чтобы добавить разделителя строк в конце этого элемента. Проблема в том, что после помещения этого представления в макет заполняет всю ширину экрана, но когда я беру представление, он отображается как правильный размер (около 400 дп в моих тестах). Почему добавлен вид, заставляющий макет заполнить весь экран.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:orientation="vertical" android:paddingLeft="6dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/text_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:textColor="@android:color/darker_gray" android:textSize="12sp" tools:text="Hello, Label" android:paddingBottom="6dp" android:paddingLeft="6dp"/> <TextView android:id="@+id/text_error" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:textColor="@color/sr_red" android:textSize="12sp" tools:text="Error!"/> </LinearLayout> <!-- this View causes the parent layout to fill the whole screen width--> <View android:layout_width="wrap_content" android:layout_height="1dp" android:layout_marginTop="2dp" android:background="@android:color/darker_gray" /> </LinearLayout> 

Это самое дно, которое вызывает проблемы.

Я меняю вид таким образом:

 val inputLayout = createLabelLayout(context, component.name, button) viewGroup.addView(inputLayout.root) inputLayout.setWidth(width) 

И вот соответствующие классы

 private fun <T : View> createLabelLayout(context: Context, text: String, child: T): LabelLayout<T> { val layout = LabelLayout(context, child) layout.label.text = text return layout } private class LabelLayout<out T : View>(context: Context, child: T) { val root = LayoutInflater.from(context).inflate(R.layout.item_custom_field_label, null, false) as ViewGroup val label = root.findViewById(R.id.text_label) as TextView val error = root.findViewById(R.id.text_error) as TextView init { root.addView(child, root.childCount - 1) } fun setWidth(width: Int) { val params = root.layoutParams params.width = width root.layoutParams = params } } 

Итак, я исправил эту проблему, изменив как root LinearLayout, так и дочерний LinearLayout на wrap_content. До того, как я изменил ширину родительских макетов.