<merge xmlns:android="http://schemas.android.com/apk/res/android"> <ToggleButton android:id="@+id/toggleButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ToggleButton" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="20dip" android:layout_gravity="center_horizontal|bottom" android:padding="12dip" android:background="#AA000000" android:textColor="#ffffffff" android:text="Golden Gate" /> </merge>
1.merge布局 和FrameLayout相似,相同的效果.不一样的是 merge布局只能被<include>标签包含. 或者Activity.setContentView所使用.html
当LayoutInflater遇到能被其余layout用<include>包含进去,并再也不另外生成ViewGroup容器,本元素也特别有用这个标签时,它会跳过它,并将<merge />内的元素添加到<merge />的父元素里. Activity能直接使用的缘由是Activity的父元素是FrameLayout
android
2 merge 能被其余layout用<include>包含进去,并再也不另外生成ViewGroup容器.就是说,会减小一层layout到达优化layout的目的布局
限制:优化
<merge />只能做为XML布局的根标签使用
· 当Inflate以<merge />开头的布局文件时,必须指定一个父ViewGroup,而且必须设定attachToRoot为true(参看inflate(int, android.view.ViewGroup, Boolean)方法)。spa