Android Studio: TableRow из шаблона не работает - PullRequest
1 голос
/ 13 января 2020

Android предлагает реализацию таблицы в xml -файле через TableLayout в виде таблицы и TableRow в виде строк. Примерно так:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1">
    <TableRow>
        <TextView
            android:text="@string/table_layout_4_open"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_open_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView
            android:text="@string/table_layout_4_save"
            android:padding="3dip" />
        <TextView
            android:text="@string/table_layout_4_save_shortcut"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>
</TableLayout>

Однако, когда TableRow При перетаскивании из шаблона в Android Studio появляется следующий текст:

<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent" />

Такая форма TableRow кажется бесполезной, поскольку в ней нет места для вставки представлений строк. Это ошибка Android Studio, или я не понимаю, как использовать такую ​​форму TableRow?

Заранее спасибо за любую идею.

1 Ответ

1 голос
/ 13 января 2020

по этой ссылке https://developer.android.com/reference/android/widget/TableRow

TableRow всегда должен использоваться как дочерний элемент TableLayout. Если родитель TableRow не является TableLayout, TableRow будет вести себя как горизонтальный LinearLayout.

, поэтому его следует использовать только в TableLayout

EDIT1 Когда вы если у вас открыт макет, вы можете переключаться между представлениями «Дизайн» и «Текст», правильно? Когда в представлении «Дизайн» перетаскивать TextView из палитры в TableRow, он генерирует следующие значения xml в представлении «Текст»

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

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />
        </TableRow>
...