Android性能优化之View.gone

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

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



做者:沈醉在夢
连接:http://www.jianshu.com/p/76ecd3b67515
來源:简书
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。对象

相关文章
相关标签/搜索