Android开发-ViewStub使用

ViewStub是一个用于加载布局文件的控件,用于控制在视图中显示那一部分,功能类似于android:visibility属性,可以使用View.Gone来控制某一个视图控件的隐藏和显示。

当然,ViewStub和android:visibility属性还是有一定的区别的,并且有一定的优势。ViewStub在软件启动的时候,软件只加载ViewStub部分的视图,而不加载ViewStub所关联的相应的视图,在有在调用inflate后才加载ViewStub所关联的视图,这样能够减小对手机内存的消耗,而使用View.Gone虽然可以实现对视图控件的隐藏和显示,但是需要在布局文件中提前设置好所有的控件,虽然可以把属性设置为View.Gone,但是在加载相应的视图的时候,依然需要将相应的视图控件全部加载,对内存的消耗太大,所以ViewStub可以起到一定的作用,要适当的使用两者的结合。

但ViewStub有一定的缺陷,它只能加载一次视图控件,加载视图控件之后就不能使用ViewStub再对所关联的视图控件进行设置。

示例代码:

<ViewStub
        android:id="@+id/vs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"

   android:layout_marginLeft="5dip"

   android:layout_marginRight="5dip"

   android:layout_marginTop="10dip"
        android:layout="@layout/popupwindow"/>

其中android:layout属性就是其所关联的layout布局

在代码中是findViewById(R.id.vs).inflate();

就可以将所关联的布局显示出来替代ViewStub,同时在ViewStub设置的一些相应的属性也会传递给所关联的布局。

像android:layout_marginLeft="5dip"

   android:layout_marginRight="5dip"

   android:layout_marginTop="10dip"

都会传递给@layout/popupwindow中的控件

时间: 2024-10-01 03:56:01

Android开发-ViewStub使用的相关文章

Android开发技巧之viewstub用法详解及实现延迟加载

这一篇是接着上面的include标签的例子来讲的,地址http://blog.csdn.net/jason0539/article/details/26131831 上一篇的布局中间就用了viewstub这个控件,现在来说一下其作用和用法 " ViewStub 是一个不可见的,大小为0的View,最佳用途就是实现View的延迟加载,避免资源浪费,在需要的时候才加载View " 需要注意的是,加载view之后,viewstub本身就会被新加载进来的view替换掉 上代码了,看完就理解了

【Android 开发技巧】布局优化利器&lt;include/&gt;和ViewStub

『原创作品,转载请注明出处. --- 孙国威』 [文章原始地址 http://blog.csdn.net/manoel/article/details/39036507] 当创建复杂的布局的时候,有时候会发现添加了很多的ViewGroup和View.随之而来的问题是View树的层次越来越深,应用也变的越来越慢,因为UI渲染是非常耗时的. 这时候就应该进行布局优化了.这里介绍两种方式,分别为<include>标签和ViewStub类. <include/> 使用<include

Android 使用ViewStub优化布局

在Android开发的工作学习中,我们往往会遇到一个比较复杂的页面,如一件商品的详情页,如天猫商城,一件商品的价格,图文介绍,秒杀活动,商品用户评价等,而且这些数据往往不是一个接口下发的,我们常规的处理是: 先将所有的view设为Gone,当后台接口调用成功后,在callback里面设置view的属性,并设为Visiable. 所有的接口异步并行调用. 这样的处理,也没有什么大问题,不过我们还可以做的更好,即使用ViewStub. 通俗的说,ViewStub是一个轻量级的view,可以使用它代替

Android开发性能优化总结(一)

安卓开发应用首先要讲究良好的用户体验,如果一款软件卡顿现象严重,不流畅,经常崩溃,那么将给用户带来极不良好的体验,从而损失用户. 在实际开发和学习中,我总结了一下关于安卓性能的优化,供大家参考交流. 应用程序的性能问题体现在很多方面, 比如第一次启动速度慢,或者进入某一界面速度慢:动画执行过程不流畅,或者动画执行卡顿时间长:ListView列表滑动过程中卡顿,不流畅:应用程序自定义的某特定界面执行速度慢:响应某一用户事件时长时间无响应(ANR):操作数据库时,执行大量数据的增删改查操作,执行速度

Android开发文摘集合1

作者:张明云 原标题:Android 开发中,有哪些坑需要注意? 作者github主页:zmywly8866.github.io/ 在Android library中不能使用switch-case语句访问资源ID:在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 不能在Activity没有完全显示时显示PopupWindow和Dialog:popupwindow - Problems creating a Popup Window in And

Android开发面试经——4.常见Android进阶笔试题(更新中...)

Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams/a

(转) Android开发性能优化简介

作者:贺小令 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序.以上理由,足以需要开发人员更加专心去实现和优化你的代码了.选择合适的算法和数据结构永远是开发人员最先应该考虑的事情.同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事:(2)不要分配不必要的内存. 我从去年开始接触Android开发,以下结合自己的一点项目经验,同时参考了Google的优

Android开发贴士集合

Activity.startActivities()——对于从app流的中部启动会非常好. TextUtils.isEmpty()——一个普遍适用的简单工具类. Html.fromHtml()——格式化Html的快速方法,本人认为它也不是非常快,所以我不是经常用它(我说不经常用它是为了重点突出这句话:请多手动构建Spannable来替换Html.fromHtml),但是它对渲染从web上获取的文字还是很不错的. TextView.setError()——在验证用户输入的时候用户体验很不错. Bu

android开发要避免的那些坑

SparseArray 目前有很多地方从性能优化方说使用SparseArray来替换hashMap,来节省内存,提高性能. Linkify.addLinks() 这个类可以更方便的为文本添加超链接. ThumbnailUtils 这个类主要是用来处理缩略图相关的,有过这方面需求的,应该是用过这个类的. Bitmap.extractAlpha();返回一个新的Bitmap,capture原始图片的alpha值.有的时候我们需要动态的修改一个元素的背景图片又不希望使用多张图片的时候,通过这个方法,结