安卓UIAndroid应用开发那些事

ViewStub详解

2019-04-11  本文已影响84人  NoBugException
(1)简介

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

(2)优缺点

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

  1. ViewStub所要替代的layout文件中不能有<merge>标签
  2. ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了。
(3)使用

第一步,在布局中添加ViewStub

<ViewStub
    android:id="@+id/status_bar"
    android:inflatedId="@+id/inflate_status_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout="@layout/statusbar"
    android:background="@android:color/black" />
ViewStub status_view = findViewById(R.id.status_bar);
status_view.setVisibility(View.VISIBLE);
//或者
//status_view.inflate();

我们必须了解以下两点

(4)作用

由于ViewStub本身大小为0,所以无需做多余的渲染(主要是onMeasureonLayoutonDraw),避免了资源的浪费,所以常常运用于view的预加载,比如自定义标题栏,其实我们手机的状态栏就是采用ViewStub来实现的。

上一篇下一篇

猜你喜欢

热点阅读