富顺做网站,百度网站建设怎么联系,做网站不懂行情 怎么收费,清远做网站公司原文地址#xff1a;http://android.xsoftlab.net/training/improving-layouts/loading-ondemand.html
有时应用程序中会有一些很少用到的复杂布局。在需要它们的时候再加载可以降低内存的消耗#xff0c;同时也可以加快界面的渲染速度。
定义ViewStub
ViewStub是一个轻量…原文地址http://android.xsoftlab.net/training/improving-layouts/loading-ondemand.html
有时应用程序中会有一些很少用到的复杂布局。在需要它们的时候再加载可以降低内存的消耗同时也可以加快界面的渲染速度。
定义ViewStub
ViewStub是一个轻量级的View它没有高宽也不会绘制任何东西。所以它的加载与卸载的成本很低。每个ViewStub都可以使用android:layout属性指定要加载的布局。
下面这个ViewStub用于一个半透明的ProgressBar的加载。它只有在新工作开始时才会显示。
ViewStubandroid:idid/stub_importandroid:inflatedIdid/panel_importandroid:layoutlayout/progress_overlayandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:layout_gravitybottom /
加载ViewStub
当需要加载由ViewStub所指定的布局时可以使用setVisibility(View.VISIBLE)方法或者inflate()方法两者效果相同。
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel ((ViewStub) findViewById(R.id.stub_import)).inflate(); Note: inflate()方法会在加载完毕的时候返回一个View。所以不需要使用findViewById()来查找这个布局的Root View。 一旦ViewStub所托管的View被加载那么ViewStub将不再是View层级的一部分。它会被所加载的布局替换并且会将该布局的ID更改为ViewStub的android:inflatedId属性所指定的ID。 Note: ViewStub的缺点是它当前并不支持要加载布局的root View为 merge/标签。