简单或复杂的问题都需要时常考虑如何优化资源的分配。比如一个功能很简单的应用程序,它会调用一些我们常用的对话框或者输入面板,这需要采用统一的方式来针对不同的应用程序制定统一标准。

当我们面对Android UI优化时,有必要继续考虑资源复用。手机开发给我们的直观感觉是运行其上的软件应该尽可能的达到资源高效利用的极致,而不能像开发PC机那样,似乎有用之不尽的资源。

定义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" />
  • <merge />: 将在下一篇做详细介绍。
  • <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>

参考资料:

http://groups.google.com/group/android-developers/browse_thread/thread/f169c76bc7faccaf/cab78c24a36d3101

http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html

如果以上内容存在错误或者遗漏之处,请给予指正,非常感谢。

转载请署名文章来自Androidres.com,并于标题前注明“【转载】”

更多相关文章

  1. 【Android软件】ES文件浏览器:Android资源管理器
  2. 【Android 内存优化】Bitmap 图像尺寸缩小 ( 考虑像素密度、针对
  3. H5 通过 input 标签,调起 Android 手机相册,点击取消时手机卡住
  4. [Android分享] Android 得到已安装的应用程序信息
  5. 【Android自学笔记】对应资源文件夹中的图标尺寸
  6. 第三部分:Android 应用程序接口指南---第二节:UI---第一章 用户界
  7. Android应用程序窗口View的measure过程
  8. 修改Android应用程序的默认最大内存值

随机推荐

  1. Android中EventBus(事件总线)传递数据
  2. Android 数据存储(三) 数据库存储
  3. Android Activity生命周期图解
  4. android HAL 理解
  5. 【Android】Android多渠道打包--Gradle打
  6. Android之——JNI初探
  7. android 音乐播放器 本地音乐文件
  8. Android(安卓)透明度百分比转换
  9. Android---多线程的处理
  10. AndroidUI设计之布局-详细解析布局实现