可复用的UI组件(根据自己的理解写的)
Android的UI工具集中包含三个特殊的标签,他们没有对应的View实例:<ViewStub/>集合的焦点 <merge/>和<include/>
一.<include/>中只有layout属性是必须的。<include layout="@layout/ 复用的xml名 "/>
使用的属性包括:
- id可能会覆盖。
- android:layout_*都是可用的,前提是layout_width和layout_height两个属性。
<merge/>多用于替换Fragment或者当一个布局包含(include)另一个时,<merge/>标签消除视图层次结构中多余的视图组,
<pre name="code" class="html"><merge >
<!--LinearLayout-->
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_parent"
adnroid:text="@string/text"/>
</merge>
现在当再次include时,系统忽略merge标签,直接添加中间属性。
三..<ViewStub/>需要时会加载,不影响初始化的性能。是不可见的(显示或隐藏某个视图)
<ViewStub
android:id="@i+d/viewstud"
andorid:width="fill_parent"
android:height="fill_parent"
android:inflatedId="@+id/map_view"
android:layout="@layout/map" 重点在这,引入一个map.xml/>
其中inflatedId是ViewStub被设置为Visible显示或调用inflate()方法后返回的id,这个id就是被填充的View的id,也就是map.xml中的id。
activity中调用的时候,先实例化,然后在设置显示,setVisibility(View.VISIBLE); 或者View import=((ViewStub)findViewById(R.id.viewstud)).inflate();