Невозможно растянуть TableLayout до ширины экрана - PullRequest
1 голос
/ 14 марта 2010

Я безуспешно пытался в течение нескольких часов просто заставить TableLayout масштабироваться на весь экран. Я пробовал stretchColumns, shrinkColumns, (указав индекс столбца или используя *), вы называете его. Это почти как если бы родительский элемент (TableLayout) полностью игнорировал 'android: layout_width = "fill_parent"'.

Я прочитал подобные вопросы здесь, хотя они не решили это для меня. В приведенном ниже XML-коде есть 3 строки, и таблица всегда сжимается по размеру содержимого.

Видимо, я слишком новичок, чтобы публиковать фотографии (?). Вот XML, представленный в проекте, над которым я работаю. http://www.dashiva.com/images/Capture.png

Чего мне здесь не хватает, это очень расстраивает!

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:stretchColumns="*">

<TableRow>
    <TextView android:id="@+id/AmountText" android:text="@string/general_amount" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:id="@+id/CardText" android:text="@string/general_card" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:text="@string/general_date" android:id="@+id/DateText" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:id="@+id/ErrorText" android:text="@string/general_error" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
</TableRow>

<TableRow>
    <TextView android:text="Amount here..." android:id="@+id/AmountNum" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:id="@+id/CardNum" android:text="Num here..." android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:text="date here..." android:id="@+id/DateDate" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
    <TextView android:text="Code here..." android:id="@+id/ErrorCode" android:paddingRight="8dip" android:layout_gravity="center"></TextView>
</TableRow>

<TableRow>
    <ImageView android:id="@+id/cc_image" android:src="@drawable/mastercard" android:background="@drawable/row_bg2" android:layout_gravity="center" android:layout_weight="1"></ImageView>
    <TextView android:id="@+id/ResponseText" android:layout_span="4" android:text="Response text here..." android:textSize="18dip" android:layout_weight="1"></TextView>
</TableRow>

<ImageView android:layout_gravity="center_vertical" android:background="@drawable/gradient_bg" android:layout_height="3dip" android:layout_width="fill_parent"></ImageView>
</TableLayout>

Ответы [ 3 ]

1 голос
/ 29 сентября 2010

Если layout_weight не установлен, растяжение также не будет работать. Это не было проблемой в вашем случае, но, возможно, это поможет кому-то еще, кто приземлится здесь.

(docs / guide / themes / ui / layout-objects.html говорит: «Дочерние представления могут указывать целочисленное значение веса, и тогда любое оставшееся пространство в группе представлений присваивается детям в пропорции их объявленного веса. Вес по умолчанию равен нулю.) "

1 голос
/ 14 марта 2010

Ну, вот что я могу вам сказать:

  1. Я удалил ваши ImageView элементы (поскольку у меня не было ваших изображений), и TableLayout довольно хорошо заполняет ширину экрана.
  2. Ваш последний <TableRow> утверждает, что имеет пять столбцов (один для ImageView и четыре для TextView), тогда как другие строки имеют четыре.

Итак, я бы попробовал изменить android:layout_span="4" на android:layout_span="3" и посмотреть, поможет ли это.

0 голосов
/ 14 марта 2010

Хорошо, проблема была в том, где я программно накачал XML. По какой-то причине я надувал это в представление, затем добавлял это к TableRow, затем добавлял это к родительскому представлению. Удаление среднего шага и просто добавление раздутого представления к родительскому элементу устранило проблему.

Спасибо, однако, у меня сложилось впечатление, что интервал был простым подсчетом, а не нулевым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...