如何在 Android 中包含布局内部布局?
我正在创建公共布局。我想包括在另一个页面的布局。
编辑: 作为一个评论正确地要求在这里一些更多的信息。使用 include标签
include
<include android:layout_width="match_parent" android:layout_height="wrap_content" layout="@layout/yourlayout" />
包含您想要重用的布局。
看看 this link。
使用 <include />标签。
<include />
<include android:id="@+id/some_id_if_needed" layout="@layout/some_layout"/>
Also, read 创建可重用的 UI 组件 and 合并布局 articles.
注意,如果将 android:id...包含到 <include />标记中,它将覆盖在包含的布局中定义的任何 id。例如:
android:id...
<include android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/some_id_if_needed" layout="@layout/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 android:id="@+id/OnlineOffline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" layout="@layout/YourLayoutName" />
关于 Re-using Layouts的官方文件
尽管 Android 提供了各种各样的小工具来提供小型和 可重用的交互式元素,您可能还需要重用更大的 需要特殊布局的组件 complete layouts, you can use the tag to embed another 当前布局内的布局。
这是我的 Xml文件,我可以重用使用 包括标签
<?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>
了解更多使用此连结 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>