Android TableRow RelativeLayout Issue - PullRequest
       28

Android TableRow RelativeLayout Issue

7 голосов
/ 19 января 2010

У меня есть следующее

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/admin_row"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:gravity="center_horizontal">
    <RelativeLayout android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:orientation="horizontal"
                    android:background="@color/silver">

Я динамически заполняю таблицу, но с относительной раскраской, окрашенной в серебристый цвет, она занимает только около 3/4 строки таблицы. Если я поставлю LinearLayout с горизонтальной ориентацией, он полностью охватит, но если я изменю его на вертикальный, возникнет та же проблема. Мне нужно относительное расположение в строке таблицы, потому что мне нужно что-то вроде этого:

Значение
Подробнее Подробнее.

Есть какие-нибудь идеи о том, как сделать относительную компоновку для строки таблицы?

Ответы [ 3 ]

12 голосов
/ 28 апреля 2010

Попробуйте установить android: stretchColumns = "0" или же android: stretchColumns = "*" в вашем теге TableLayout.

6 голосов
/ 02 февраля 2010

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

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/detail_row"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content">
    <RelativeLayout android:layout_height="fill_parent"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:orientation="horizontal">

Обратите внимание, что это, по-видимому, находится в прямом противоречии с состоянием строки таблицы Java:

Детям TableRow не нужны указать layout_width и Атрибуты layout_height в XML файл. TableRow всегда обеспечивает соблюдение этих значения должны быть соответственно FILL_PARENT и WRAP_CONTENT.

1 голос
/ 19 января 2010

Вы должны поместить атрибут android:background="@color/silver" в TableRow.

У меня была такая же проблема с LinearLayout внутри ScrollView.

Надеюсь, это поможет,

Lint

...