Как включить макет внутри макета в Android?
Создаю общий макет. Я хочу включить этот макет на другую страницу.
android
android-layout
мохан
источник
источник
Ответы:
Изменить: как в комментарии, который правильно запрошен здесь, дополнительная информация. Используйте
include
тег<include android:layout_width="match_parent" android:layout_height="wrap_content" layout="@layout/yourlayout" />
чтобы включить макет, который вы хотите использовать повторно.
Проверьте эту ссылку ...
источник
<include />
теге, однако вы можете сделать это с помощью java-кода. см . ответ Phileo99 ниже, чтобы узнать, как получить ссылку на включенный макет. а затем вы можете изменить его содержимое.Обратите внимание, что если вы включите
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>
Затем вы должны ссылаться на этот включенный макет в коде следующим образом:
источник
Используйте
<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" />
источник
Из официальных документов о повторном использовании макетов
Вот мой файл 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>
источник
Because I want to reuse a ProgressBar
какая проблема?Узнать больше По этой ссылке https://developer.android.com/training/improving-layouts/reusing-layouts.html
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Game_logic"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:id="@+id/text1" android:textStyle="bold" tools:text="Player " /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:layout_marginLeft="20dp" android:id="@+id/text2" tools:text="Player 2" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Вышеупомянутый макет вы можете использовать в другой деятельности, используя
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SinglePlayer"> <include layout="@layout/activity_game_logic"/> </androidx.constraintlayout.widget.ConstraintLayout>
источник