Как установить ширину таблицы и количество столбцов в TableLayout в Android - PullRequest
12 голосов
/ 15 марта 2012

Есть ли какой-либо способ сделать таблицу, как HTML в Android, где я могу установить ширину столбца строки, как мы делаем в HTML

<table >
<tr><td style="width:'50%;"></td>
    <td style="width:'50%;"></td>
</tr>
</table>

<TableLayout
           android:id="@+id/tableLayout1"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:stretchColumns="3" >
           <TableRow
                    android:id="@+id/tableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >
           </TableRow>
           <TableRow
                    android:id="@+id/tableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >
           </TableRow>
</TableLayout>

Редактировать 1:

Для чего-то вроде Html процентная ширина работает по отношению к его Parent

, но вес, введенный в Android, работает относительно размера экрана, доступного для root.

Ответы [ 2 ]

22 голосов
/ 15 марта 2012

Вы можете использовать LinearLayout и атрибут веса, чтобы достичь этого.

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1.0">

Каждому дочернему элементу в ваших строках может быть присвоен вес в виде части суммы (в процентах) Обязательно установите для layout_width значение "0dp"

<Button 
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="0.5" />

<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="0.5" />

Проверьте этот предыдущий вопрос Линейный макет и вес в Android

16 голосов
/ 22 февраля 2013

TableLayout имеет свойства, аналогичные LinearLayout. Я тоже немного поработал над этим. Чтобы лучше сказать это, см. Мой пример кода ниже. Надеюсь, что это полезно.

 <TableLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:stretchColumns="3" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal"
            android:layout_weight="1">
            <TextView android:text="@string/test1" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test2" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test3" android:layout_weight="1"></TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal"
            android:layout_weight="1">
            <TextView android:text="@string/test1" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test2" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test3" android:layout_weight="1"></TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:orientation="horizontal"
            android:layout_weight="1">
            <TextView android:text="@string/test1" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test2" android:layout_weight="1"></TextView>
            <TextView android:text="@string/test3" android:layout_weight="1"></TextView>
        </TableRow>

    </TableLayout>
...