android的xml中<viewStub />, <requestFocus />, <merge /> and <include />的用法

定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,分别是<viewStub />、<merge />、  <include />、 <requestFocus />。前三种与资源复用有关,下面简单的介绍一下这四个标签的用法。


---------------------------------------------------------------------华-丽-分-割-符--------------------------------------------------------------------

第一个介绍<viewStub/>

   此标签可以使UI在特殊情况下,直观效果类似于设置View的不可见性,但是其更大的(R)意义在于被这个标签所包裹的Views在默认状态下不会占用任何内存空间。viewStub通过include从外部导入Views元素。 

用法:通过android:layout来指定所包含的内容。默认情况下,ViewStub所包含的标签都属于visibility=GONE。viewStub通过方法inflate()来召唤系统加载其内部的Views。 

代码片段:

<pre name="code" class="java"><span style="font-size:18px;"><ViewStub </span>
<span style="font-size:18px;"><span style="white-space:pre">	</span>android:id="@+id/et_name"
<span style="white-space:pre">	</span>android:inflatedId="@+id/stub"
<span style="white-space:pre">	</span>android:layout="@layout/ll_login"
<span style="white-space:pre">	</span>android:layout_width="120dp"
<span style="white-space:pre">	</span>android:layout_height="100dp</span><span style="font-size:18px;">" /></span>
 


第二个 <include />:

可以通过这个标签直接加载外部的xml到当前结构中,是复用UI资源的常用标签。 
用法:将需要复用xml文件路径赋予include标签的Layout属性。

代码片段:

<include android:id="@+id/name" layout="@layout/ll_login" />


第三个 <merge />

此标签一般用于layout使用framLayout作为根节点。用<merge/>节点来代替frameLayout节点来减少资源浪费。由于现在使用framLayout的布局比较少,所以这里不再说明merge标签的具体功能,如果想了解,可以点击这里的链接点击打开链接


第四个 <requestFocus />

标签用于指定屏幕内的焦点View。 
用法: 将标签置于Views标签内部 

代码片段:

<EditText 
        android:id="@+id/et_result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number">
        <requestFocus />
    </EditText>
解释:此时屏幕内的焦点在EditView






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值