Как включить макет внутри макета в Android?
Я создаю общий макет. Я хочу включить этот макет на другую страницу.
Как включить макет внутри макета в Android?
Я создаю общий макет. Я хочу включить этот макет на другую страницу.
Изменить: Как и в комментарии, мы запросили здесь дополнительную информацию. Используйте тег include
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/yourlayout" />
чтобы включить макет, который вы хотите повторно использовать.
Отметьте эту ссылку вне...
Обратите внимание, что если вы включите 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);
Используйте тег <include />
.
<include
android:id="@+id/some_id_if_needed"
layout="@layout/some_layout"/>
Кроме того, прочитайте Создание компонентов многоразового пользовательского интерфейса и Объединить макеты.
Попробуйте это
<include
android:id="@+id/OnlineOffline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
layout="@layout/YourLayoutName" />
Из официальных документов о Повторное использование макетов
Хотя 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>