Android的<merge>标签在XML布局中的用途是什么?

我已经阅读了Romain Guy在<merge />标记上的帖子,但是我仍然不明白它的用处。它是<Frame />标签的某种替代品,还是这样使用:


<merge xmlns:android="....">

<LinearLayout ...>

    .

    .

    .

</LinearLayout>

</merge>

那么<include />代码在另一个文件中?


至尊宝的传说
浏览 854回答 3
3回答

九州编程

<merge/> 之所以有用,是因为它可以摆脱不需要的ViewGroup,即仅用于包装其他视图且本身没有任何作用的布局。例如,如果<include/>要从另一个文件中进行布局而不使用合并,则这两个文件可能看起来像这样:layout1.xml:<FrameLayout>&nbsp; &nbsp;<include layout="@layout/layout2"/></FrameLayout>layout2.xml:<FrameLayout>&nbsp; &nbsp;<TextView />&nbsp; &nbsp;<TextView /></FrameLayout>在功能上等效于以下单个布局:<FrameLayout>&nbsp; &nbsp;<FrameLayout>&nbsp; &nbsp; &nbsp; <TextView />&nbsp; &nbsp; &nbsp; <TextView />&nbsp; &nbsp;</FrameLayout></FrameLayout>layout2.xml中的那个FrameLayout可能没有用。 <merge/>帮助摆脱它。这是使用合并的样子(layout1.xml不变):layout2.xml:<merge>&nbsp; &nbsp;<TextView />&nbsp; &nbsp;<TextView /></merge>这在功能上等效于以下布局:<FrameLayout>&nbsp; &nbsp;<TextView />&nbsp; &nbsp;<TextView /></FrameLayout>但是由于您正在使用<include/>,因此可以在其他地方重复使用布局。它不必用于仅替换FrameLayouts -您可以使用它来替换不会为视图的外观/行为添加任何有用内容的任何布局。

精慕HU

blazeroni已经很清楚了,我只想补充几点。<merge>&nbsp;用于优化布局,用于减少不必要的嵌套。当将包含<merge>标签的布局添加到另一个布局中时,将<merge>删除该节点,并将其子视图直接添加到新的父视图中。
打开App,查看更多内容
随时随地看视频慕课网APP