How to include layout inside layout?

如何在 Android 中包含布局内部布局?

我正在创建公共布局。我想包括在另一个页面的布局。

143185 次浏览

编辑: 作为一个评论正确地要求在这里一些更多的信息。使用 include标签

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

包含您想要重用的布局。

看看 this link

使用 <include />标签。

          <include
android:id="@+id/some_id_if_needed"
layout="@layout/some_layout"/>

Also, read 创建可重用的 UI 组件 and 合并布局 articles.

注意,如果将 android:id...包含到 <include />标记中,它将覆盖在包含的布局中定义的任何 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>