2011-12-30 4 views
0

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

Спасибо!

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

<?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> 
+0

Как вы относитесь к этому файлу? Также читаете ли вы http://developer.android.com/training/improving-layouts/reusing-layouts.html? – Jack

ответ

0

Вы должны использовать 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 является п ot применяется к TableRow

1

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

+0

Даже если я включу их в TableLayout? Базовый файл макета содержит TableLayout, и этот XML-файл будет включен, т. Е. zundi

+0

Если я правильно понял ваш вопрос, он все равно должен работать, даже если вы включите его в другой формат. – kosa

0

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

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

+0

Даже если я включу их в TableLayout? Основной файл макета содержит TableLayout, и этот XML-файл будет включен, т.е. zundi

Смежные вопросы