编写设计模式(DESIGNPATTERNS)的前辈们在具体的实践中总结出大量的经验,比如:如何才能高效的处理问题?如何才能更科学的安排架构或者合理的复用现有资源?等等…其中有提到对现有资源的复用,这是整个设计模式精髓理论之一,因为资源复用被应用于设计模式大部分的模块中。
简单或复杂的问题都需要时常考虑如何优化资源的分配。比如一个功能很简单的应用程序,它会调用一些我们常用的对话框或者输入面板,这需要采用统一的方式来针对不同的应用程序制定统一标准。
当我们面对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标签内部
<EditText id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingBottom="4">
<requestFocus />
</EditText>
分享到:
相关推荐
在布局优化中,Androi的官方提到了这三种布局<include>、<merge>、<ViewStub>,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。 1、布局重用<include> <include>...
android 用ViewStub实现Tab选项卡效果
一、Layout XML文件常见的两种...<ViewStub android:layout=@layout/otherLayout/> 还要把layout width和height加上 二、ViewStup完成动态加载 1、简介 2、ViewStub类结构图 从这个图里面我们可以发现ViewStu
Android下使用ViewStub控件动态懒加载。可以参见博客:http://www.cnblogs.com/plokmju/p/android_ViewStub.html
Android 官方提供了三个用来优化布局的标签,分别是include、merge与ViewStub,下面这篇文章主要给大家介绍了关于Android布局技巧之include、merge与ViewStub标签巧用的相关资料,需要的朋友可以参考下
Android UI优化之merge标签的使用,主要介绍ViewStub方法使用的注意事项及方法实现。
merge结合include优化android布局,效果不知道,个人感觉使用上也有很大的局限,不过还是了解一下,记录下来。 布局文件都要有根节点,但android中的布局嵌套过多会造成性能问题,于是在使用include嵌套的时候我们...
ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View。虽然Android开发人员基本上都听说过,但是真正用的可能不多。 ViewStub可以理解成一个非常轻量级的View,与其他的控件一样,有着自己的属性及...
第三章 Android开发 使用ViewStub延迟展开视图.docx
Android 使用ViewStub 实现Activity 页面不同状态动态切换。可以直接继承使用,也可以根据自己的需求进行优化。。
DataBinding中ViewStub例子
为了高效复用完整布局,你可以使用<include>和<merge>标签嵌入另一个布局到当前布局。所以当你通过写一个自定义视图创建独立UI组件,你可以放到一个布局文件里,这样更容易复用。 复用布局因为其允许你创建可复用的...
http://blog.csdn.net/i_do_can/article/details/51567913
针对这种情况,谢天谢地,Android还为我们提供了一个特别的构件——ViewStub,它可以使你充分享受<include>的好处而不会造成无用View的浪费。 ViewStub是一个看不见的,轻量级的View。它没有尺寸,也不会绘制以及以...
主要为大家详细介绍了Android组件ViewStub基本使用方法,感兴趣的小伙伴们可以参考一下
这是一个关于Android Layout布局复用的简单示例。
在4.5.6节介绍过一个<include>标签,该标签可以在布局文件中引用另外一个布局文件,并可以覆盖被引用布局文件根节点所有与布局相关的属性,也就是以android:layout开头的属性。通过<include>标签可以将一个非常庞大...
利用ViewStub显示和隐藏布局 运用View.VISIBLE和View.GONE去改变布局的可见性.