Может ли XML-файл макета Android содержать только строки? - PullRequest
0 голосов
/ 30 декабря 2011

Я не уверен, является ли это вопросом XML или вопросом Android. У меня есть структура XML, которая повторяется в разных макетах, поэтому я хочу извлечь ее и сохранить в своем собственном файле. Он содержит 3 строки TableLayout. Я получаю сообщение об ошибке в файле XML. Есть идеи почему? Это потому, что нет внешнего макета XML?

Спасибо!

Это содержимое нового xml-файла, который я позже вставляю (через include layout) в основной файл макета.

    <?xml version="1.0" encoding="utf-8"?>
    <TableRow
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:gravity="center_vertical">
        <Button
            android:id="@+id/button_calc"
            android:layout_column="1"
            android:layout_span="2" />
    </TableRow>
    <TableRow android:gravity="center_vertical">
        <TextView
            android:textColor="@color/black"
            android:id="@+id/title_res"
            android:layout_column="1"
            android:padding="5dp" />
        <TextView
            android:textColor="@color/black"
            android:id="@+id/res"
            android:layout_column="1"
            android:textSize="25dp" />
    </TableRow>
    <TableRow android:gravity="center_vertical">
        <TextView
            android:id="@+id/title_res_etc"
            android:textColor="@color/black"
            android:layout_column="1"
            android:paddingLeft="5dp"
            android:layout_span="2" />
    </TableRow>

Ответы [ 3 ]

1 голос
/ 30 декабря 2011

Все ваши скатерти должны быть в макете стола. Вот andriod учебник о том, как использовать макет таблицы. Макет таблицы Android

0 голосов
/ 30 декабря 2011

Вы правы, есть только строки.Столбцы работают, просматривая первый элемент в каждой строке и создавая из него столбец.

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

0 голосов
/ 30 декабря 2011

Вы должны использовать ViewGroup в качестве родительского макета, чтобы содержать несколько View внутри него.подклассы ViewGroup используются для управления макетом. Некоторые из подклассов

LinearLayout
RelativeLayout
FrameLayout
TableLayout

и т. д.

, поэтому, чтобы иметь несколько View в одном макете, вы должны обернуть всепредставления в любом макете, например:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="vertical">
        <Button
            android:id="@+id/button_calc"
            android:layout_width="fill_parent" android:layout_height="fill_parent" />
        <!--Other views goes here-->
</LinearLayout>

, и если вы хотите показать TableRow, он должен быть заключен в TableLayout, иначе ваш LayoutParams не будет применен к TableRow

...