博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android性能优化之View.gone
阅读量:5895 次
发布时间:2019-06-19

本文共 626 字,大约阅读时间需要 2 分钟。

hot3.png

我们经常会遇到这样的情况,运行时动态根据条件来决定显示哪个View或布局。常用的做法是把View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。

推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Inflate布局的时候,只有ViewStub会被初始化,然后当ViewStub被设置为可见的时候,或是调用了ViewStub.inflate()的时候,ViewStub所向的布局就会被Inflate和实例化,然后ViewStub的布局属性都会传给它所指向的布局。这样,就可以使用ViewStub来方便的在运行时,要还是不要显示某个布局。

作者:沈醉在夢
链接:http://www.jianshu.com/p/76ecd3b67515
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://my.oschina.net/u/2360415/blog/1359278

你可能感兴趣的文章
编译安装 nginx
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
mysql主从
查看>>
Jenkins进阶实战:构建Pipeline流水线
查看>>
.net core 反射涉及到的基本对象
查看>>
Spark 小内容
查看>>
SQL常用函数
查看>>
快速调整窗口位置和大小的工具 Cinch
查看>>
C#中的Action和Func
查看>>
2015-3-15
查看>>
PHP使用DOMDocument采集
查看>>
windows2003下MP4产生404错误解决方法
查看>>
shell 浮点数处理
查看>>
cygwin 在win下使用ssh key提示权限问题的解决方法
查看>>
fish 2.2.0 (July 12, 2015) 支持 vi 模式
查看>>
set,list,map的区别
查看>>
谷歌在链接费用战争中呼吁德国公众
查看>>
java socket编程
查看>>
单例,线程安全
查看>>