Android性能优化之一:ViewStub

介绍

ViewStub 是一个轻量级的View,没有尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)

优点

实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View

缺点

  • ViewStub所要替代的layout文件中不能有标签
  • ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了

用法



    

    

    


此处加个id为tv_extend的TextView是为了演示用的,点击显示和隐藏ViewStub,类似很多评论区的展开和收缩

布局 layout_image_view.xml





    

    


点击展开具体交互,这里为了简单,用了文字做判断,大家不要这么写

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv_extend:
                if(extendTv.getText().equals("展开")){
                    viewStub.setVisibility(View.VISIBLE);
                    extendTv.setText("关闭");
                }else{
                    viewStub.setVisibility(View.GONE);
                    extendTv.setText("展开");
                }
                break;
        }
    }
View_Stub.gif

你可能感兴趣的:(Android性能优化之一:ViewStub)