Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android活动,同一个模板的布局注入不同的内容布局_Android - Fatal编程技术网

Android活动,同一个模板的布局注入不同的内容布局

Android活动,同一个模板的布局注入不同的内容布局,android,Android,我想知道实现这一目标的最佳实践可能是什么 我正在寻找一个结构相似的布局文件,这样我就可以在应用程序的不同活动中使用它 下面是这样的:activity\u base.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android

我想知道实现这一目标的最佳实践可能是什么

我正在寻找一个结构相似的
布局文件
,这样我就可以在应用程序的不同活动中使用它

下面是这样的:
activity\u base.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        layout="@layout/content_home"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

有没有办法将
布局文件
以编程方式插入到每个活动中的include中

因此,如果我为每个活动
content\u settings.xml
,在
onCreate
的内部,或者可能是
setContentView
替换为
content\u home.xml
资源文件

有没有办法在每个活动中以编程方式将布局文件插入到该包含中

不,您不能将“include”注入,因为include不是最终布局的一部分(它只是告诉您希望在构建过程中包含其他一些布局XML)

但是,您可以做的是将任何“子布局”(从代码创建或从项目布局文件单独膨胀)添加到“主布局”中的任何现有视图组中,这是一种非常常用的技术,特别是仔细看看像
addView()
这样的方法

另一方面,您可以考虑使用LayOutButter的()<代码>通货膨胀()/代码>方法,在这里您还可以指定新的膨胀布局的根视图组,以增加一次膨胀。

你也可以(也可能是更好的方法)考虑分离组件,即使用片段,然后在你的布局中添加片段。

有没有办法在每个活动中以编程方式将布局文件插入到该包含中

不,您不能将“include”注入,因为include不是最终布局的一部分(它只是告诉您希望在构建过程中包含其他一些布局XML)

但是,您可以做的是将任何“子布局”(从代码创建或从项目布局文件单独膨胀)添加到“主布局”中的任何现有视图组中,这是一种非常常用的技术,特别是仔细看看像
addView()
这样的方法

另一方面,您可以考虑使用LayOutButter的()<代码>通货膨胀()/代码>方法,在这里您还可以指定新的膨胀布局的根视图组,以增加一次膨胀。


你也可以(也可能是更好的方法)考虑分离组件,即使用片段,然后在你的布局中添加片段。

你不能用<代码>包含< <代码>标签,但是使用

ViewStub是一个不可见的零大小视图,可用于在运行时惰性地膨胀布局资源。当ViewStub可见或被调用时,布局资源会膨胀。然后,ViewStub将其父视图中的自身替换为一个或多个膨胀视图。因此,在调用或之前,ViewStub一直存在于视图层次结构中。膨胀视图将使用ViewStub的布局参数添加到ViewStub的父视图中。类似地,可以使用ViewStub的充气id属性定义/替代充气视图的id


在您的场景中,您将在膨胀
视图存根之前使用

您不能使用
include
标记来执行此操作,但必须使用

ViewStub是一个不可见的零大小视图,可用于在运行时惰性地膨胀布局资源。当ViewStub可见或被调用时,布局资源会膨胀。然后,ViewStub将其父视图中的自身替换为一个或多个膨胀视图。因此,在调用或之前,ViewStub一直存在于视图层次结构中。膨胀视图将使用ViewStub的布局参数添加到ViewStub的父视图中。类似地,可以使用ViewStub的充气id属性定义/替代充气视图的id


在您的场景中,您可以在膨胀
视图存根之前使用FrameLayout,而不是

<FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

您可以使用FrameLayout而不是

<FrameLayout
        android:id="@+id/frame_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

是的,在你写这篇文章的时候,我刚刚发现了ViewStub,我实现了一个测试,它正是我想要的。感谢您确认这将是一个好方法!是的,在你写这篇文章的时候,我刚刚发现了ViewStub,我实现了一个测试,它正是我想要的。感谢您确认这将是一个好方法!