<merge /> 標簽在你嵌套 Layout 時取消了 UI 層級中冗餘的 ViewGroup 。比如,如果你有一個 Layout 是一個豎直方向的 LinearLayout,其中包含兩個連續的 View 可以在別的 Layout 中重用,那麼你會做一個 LinearLayout 來包含這兩個 V ...
<merge />
標簽在你嵌套 Layout 時取消了 UI 層級中冗餘的 ViewGroup 。比如,如果你有一個 Layout 是一個豎直方向的 LinearLayout,其中包含兩個連續的 View 可以在別的 Layout 中重用,那麼你會做一個 LinearLayout 來包含這兩個 View ,以便重用。不過,當使用一個 LinearLayout 作為另一個 LinearLayout 的根節點時,這種嵌套 LinearLayout 的方式除了減慢你的 UI 性能外沒有任何意義。
為了避免這種情況,你可以用 <merge>
元素來替代可重用 Layout 的根節點。例如:
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/add"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/delete"/> </merge>
現在,當你要將這個 Layout 包含到另一個 Layout 中時(並且使用了 <include/>
標簽),系統會忽略 <merge>
標簽,直接把兩個 Button 放到 Layout 中 <include>
的所在位置。