Как включить макет внутри макета?

Как включить макет внутри макета в Android?

Я создаю общий макет. Я хочу включить этот макет на другую страницу.

Ответ 1

Изменить: Как и в комментарии, мы запросили здесь дополнительную информацию. Используйте тег include

<include
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   layout="@layout/yourlayout" />

чтобы включить макет, который вы хотите повторно использовать.

Отметьте эту ссылку вне...

Ответ 2

Обратите внимание, что если вы включите android:id... в тег <include />, он переопределит любой идентификатор, указанный внутри включенного макета. Например:

<include
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_id_if_needed"
   layout="@layout/yourlayout" />

yourlayout.xml:

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_other_id">
   <Button
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button1" />
 </LinearLayout>

Затем вы будете ссылаться на этот включенный макет в коде следующим образом:

View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);

Ответ 4

Попробуйте это

<include
            android:id="@+id/OnlineOffline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            layout="@layout/YourLayoutName" />

Ответ 5

Из официальных документов о Повторное использование макетов

Хотя Android предлагает множество виджетов для предоставления небольших и повторно используемые интерактивные элементы, вам также может потребоваться повторное использование более крупных компоненты, требующие специальной компоновки. Для эффективного повторного использования полные макеты, вы можете использовать тег для встраивания другого макет внутри текущего макета.

Вот мой файл header.xml, который я могу повторно использовать с помощью тега 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"
    android:background="#FFFFFF"
    >


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:text="@string/app_name"
        android:textColor="#000000" />

</RelativeLayout>

Нет. Я использую тег в XML, чтобы добавить другой макет из другого XML файла.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#f0f0f0" >


    <include
        android:id="@+id/header_VIEW"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/header" />

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#ffffff"
        android:orientation="vertical"
        android:padding="5dp" >


    </LinearLayout>