Android Layout标签之-viewStub,requestFocus,merge,include

定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, <merge /> and<include />。可是以往我们所接触的案例或者官方文档的例子都没有着重去介绍这些标签的重要性。

  • <viewStub  />: 此标签可以使UI在特殊情况下,直观效果类似于设置View的不可见性,但是其更大的(R)意义在于被这个标签所包裹的Views在默认状态下不会占用任何内存空间。viewStub通过include从外部导入Views元素。
    • 用法:通过android:layout来指定所包含的内容。默认情况下,ViewStub所包含的标签都属于visibility=GONE。viewStub通过方法inflate()来召唤系统加载其内部的Views。
      <ViewStub android:id="@+id/stub"
      android:inflatedId="@+id/subTree"
      android:layout="@layout/mySubTree"
      android:layout_width="120dip"
      android:layout_height="40dip" />
  • <include />:可以通过这个标签直接加载外部的xml到当前结构中,是复用UI资源的常用标签。
    • 用法:将需要复用xml文件路径赋予include标签的Layout属性。
      <include android:id="@+id/cell1" layout="@layout/ar01" />
      <include android:layout_width="fill_parent" layout="@layout/ar02" />
  • <requestFocus />: 标签用于指定屏幕内的焦点View。
    • 用法: 将标签置于Views标签内部 <!– Easy AdSenser V2.37 –><!– Post[count: 2] –>
      <EditText id="@+id/text"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:layout_weight="0"
                   android:paddingBottom="4">
             <requestFocus />
      </EditText>

你可能感兴趣的:(android,xml,UI,layout,include,merge)