3 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
<merge/> 之所以有用,是因?yàn)樗梢詳[脫不需要的ViewGroup,即僅用于包裝其他視圖且本身沒有任何作用的布局。
例如,如果<include/>要從另一個(gè)文件中進(jìn)行布局而不使用合并,則這兩個(gè)文件可能看起來像這樣:
layout1.xml:
<FrameLayout>
<include layout="@layout/layout2"/>
</FrameLayout>
layout2.xml:
<FrameLayout>
<TextView />
<TextView />
</FrameLayout>
在功能上等效于以下單個(gè)布局:
<FrameLayout>
<FrameLayout>
<TextView />
<TextView />
</FrameLayout>
</FrameLayout>
layout2.xml中的那個(gè)FrameLayout可能沒有用。 <merge/>幫助擺脫它。這是使用合并的樣子(layout1.xml不變):
layout2.xml:
<merge>
<TextView />
<TextView />
</merge>
這在功能上等效于以下布局:
<FrameLayout>
<TextView />
<TextView />
</FrameLayout>
但是由于您正在使用<include/>,因此可以在其他地方重復(fù)使用布局。它不必用于僅替換FrameLayouts -您可以使用它來替換不會(huì)為視圖的外觀/行為添加任何有用內(nèi)容的任何布局。

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
blazeroni已經(jīng)很清楚了,我只想補(bǔ)充幾點(diǎn)。
<merge>
用于優(yōu)化布局,用于減少不必要的嵌套。當(dāng)將包含
<merge>
標(biāo)簽的布局添加到另一個(gè)布局中時(shí),將<merge>
刪除該節(jié)點(diǎn),并將其子視圖直接添加到新的父視圖中。
- 3 回答
- 0 關(guān)注
- 954 瀏覽
添加回答
舉報(bào)