Мне нужно получить TableLayout, чтобы он соответствовал ширине его родительского LinearLayout, но я не могу заставить его работать.TableLayout не будет соответствовать_parent LinearLayout width
На первом снимке экрана снимок «Короткая заголовок» является первым видом в вертикальном 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>
Это сработало, так это то, что вы продвигаете? – ismail
Спасибо. Я попробовал установить 'android: stretchColumns =" 1 "', чтобы второй столбец растянулся и заполнил пустую ширину таблицы, но это заставило таблицу заполнить ширину экрана. Ваше предложение установить вес второго представления в каждой строке до 1 достигает того, что я думал, что 'stretchColumns' предназначалось для чтения документов API. Он предполагает, что атрибут 'stretchColumns' может быть немного сломан, да? –
несколько раз некоторые атрибуты, которые должны работать, но не работают. Я думаю, что это связано с каким-то родительским стилем или худшим из-за версий – ismail