gpt4 book ai didi

android - 可以澄清一下 的用法吗

转载 作者:IT王子 更新时间:2023-10-29 00:06:23 28 4
gpt4 key购买 nike

我只需要有人告诉我是否正确理解何时使用 <include><merge> .

所以,我制作了一个标题布局,我想将它包含到其他 XML 布局中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header text" />
</LinearLayout>

我以这种方式将它包含到其他一些 XML 中(这是非常基本的):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<include
android:id="@+id/header"
layout="@layout/top"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>

这会很好用,没有问题。但是为了优化代码,我不得不使用<merge>在包含的布局中。所以top layout不应有标签 <LinearLayout>但它必须是这样的:

<merge xmlns:android="http://schemas.android.com/apk/res/android">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header text" />
</merge>

我理解正确吗?

最佳答案

据我了解,它将合并元素设置为 View 层次结构中的较高元素。包含将简单地将整个 View 组放在那里。因此,使用您的示例, View 层次结构应如下所示:

合并:

LinearLayout (root)
|
TextView

包含:

LinearLayout (root)
|
LinearLayout
|
TextView

因此,您将在 View 层次结构中拥有一个不需要的额外 LinearLayout。但是,有时您需要该中间 View 。在您的情况下,您不会,因为两个 LinearLayouts 具有相同的布局参数并且没有其他差异。

关于android - 可以澄清一下 <include> 和 <merge> 的用法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196501/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com