2010-01-19 5 views
6

У меня есть следующиеAndroid TableRow RelativeLayout Выпуск

<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 с горизонтальной ориентацией, он будет полностью развернут, но если я изменю его на вертикальную, то будет возникать одна и та же проблема. Мне нужна относительная компоновка в строке таблицы, потому что мне нужно что-то вроде этого:

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

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

ответ

1

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

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

Надеется, что это помогает,

Lint

+0

Я не пытаюсь раскрасить строку. Я использовал его как механизм отладки, чтобы определить, почему мой относительный макет не будет охватывать всю строку. – phogel

6

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

<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

Вы только что сделали свой день и помогли мне выполнить мой срок. Огромное спасибо! – zabawaba99

12

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

+0

ничего себе, вот отличный ответ! – PCoder