Android: включить xml в другой xml

#android #xml #android-xml

#Android #xml #android-xml

Вопрос:

Как включить xml-данные в другие XML-данные?

У меня есть XML-файл заголовка для моего приложения, который я хочу использовать в своих специальных XML-файлах другого контента. Есть ли способы включить заголовок в мой контент?

Ответ №1:

используйте тег include

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"     
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 >
  <!-- Header -->
  <include
    android:id="@ id/container_header_lyt"  
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_above=...
    android:layout_toLeftOf=...
    layout="@layout/header_logo_lyt" //Name of the xml layout file you want to include
    />     

...

</RelativeLayout>
  

Комментарии:

1. Я не пробовал с RelativeLayout, но это должно быть. Возможно, вам придется установить в теге include свойства, которые определяют, где он должен быть размещен: android:layout_above, android:layout_tolefto и т.д…

2. у меня это не работает с реальным макетом, возможно, моя ошибка где-то в другом месте, я опубликую свой код

3. Я отредактировал ответ, чтобы адаптировать его к случаю RelativeLayout

4. match_parent не разрешен для RelativeLayout

5. Вместо этого используйте fill_parent. Я вставил свой код и работаю с honeycomb, вот почему я использовал match_parent. Но это должно работать с fill_parent. Поиграйте немного со своим кодом.

Ответ №2:

Вы должны объявить свой XML-макет «body» с тегом < merge>, чтобы использовать тег < include> в вашем основном макете.

 <?xml version="1.0" encoding="utf-8"?>
<merge>
    <ImageView android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:scaleType="center"
        android:src="@drawable/image" / >

    <TextView android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal|bottom"
        android:background="#AA000000"
        android:textColor="#ffffffff"
        android:text="Some Text" / >
</merge>
  

Это содержимое вашего тега < include>

Ответ №3:

Вы должны использовать тег < include>: Повторное использование макетов с