Мне нужно, чтобы TableLayout соответствовал ширине родительского LinearLayout, но я не могу заставить его работать.
На первом снимке экрана ниже «Короткий заголовок» — это первое представление в вертикальном LinearLayout. «Поля» ниже являются членами TableLayout, который является вторым представлением в вертикальном LinearLayout.
Когда текст «Заголовок» не требует такой ширины, как TableLayout, все выравнивается по назначению.
Когда «Заголовок» требует большей ширины, чем TableLayout, TableLayout не соответствует_ширине с «Заголовком», как вы можете видеть на втором снимке экрана.
Как сделать так, чтобы TableLayout соответствовал ширине LinearLayout?
Примечание. Базовый LinearLayout должен "переноситься" на наименьшую ширину, необходимую для отображения его содержимого, поэтому установка фиксированной ширины не является решением
XML макета для этого теста:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/baseLinerLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FFAAAAAA" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:background="#FF000000"
android:textColor="#FFFFFFFF"
android:text="Long header to make base layout wider than table layout" />
<TableLayout
android:id="@+id/tableLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#33FFFFFF" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:gravity="center"
android:padding="10dp"
android:background="#44FFFFFF"
android:textColor="#FF000000"
android:text="Field (0,0)" />
<TextView
android:gravity="center"
android:padding="10dp"
android:background="#88FFFFFF"
android:textColor="#FF000000"
android:text="Field (0,1)" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:gravity="center"
android:padding="10dp"
android:background="#88FFFFFF"
android:textColor="#FF000000"
android:text="Field (0,1)" />
</TableRow>
</TableLayout>
</LinearLayout>
</RelativeLayout>