3 回答

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

TA貢獻1845條經驗 獲得超8個贊
blazeroni已經很清楚了,我只想補充幾點。
<merge>
用于優化布局,用于減少不必要的嵌套。當將包含
<merge>
標簽的布局添加到另一個布局中時,將<merge>
刪除該節點,并將其子視圖直接添加到新的父視圖中。
- 3 回答
- 0 關注
- 956 瀏覽
添加回答
舉報