使用 ViewStub 延迟展开视图

 

1)定义 ViewStub

<ViewStub android:id = "@+id/stub_import"

android:inflatedId="@+id/panel_import"

android:layout="@layout/progress_overlay"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="bottom"/>

 

2)展开视图

findViewById(R.id.stub_import).setVisibility(View.VISIBLE);

// 或者 获取视图

View importPanel = ((ViewStub)

findViewById(R.id.stub_import)).inflate();

 

        有一点需要记住的是:当ViewStub inflate后,这个ViewStub就从View层次中移除了。因此,没有必要保留一个对ViewStub的引用(如在类的字段里)。

ViewStub是快捷编程与高效编程之间的产物。与其手动的inflate View并在运行时添加到View层次上,不如简单的使用ViewStub它相当“廉价”且易于使用。ViewStub唯一的缺点是现在不支持<merge />标签。

 

        用ViewStub类和在XML文件里面指定的布局资源文件关联起来,让布局资源文件在需要使用的时候再加载上去。主要作用是性能优化,什么时候用什么时候加载,不用在开始启动的时候一次加载,既可以加快程序的启动速度,又可以节省内存资源。


 

你可能感兴趣的:(编程,android,xml)