Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android布局性能優化之按需加載View

Android布局性能優化之按需加載View

編輯:關於Android編程

有時應用程序中會有一些很少用到的復雜布局。在需要它們的時候再加載可以降低內存的消耗,同時也可以加快界面的渲染速度。

定義ViewStub

ViewStub是一個輕量級的View,它沒有高寬,也不會繪制任何東西。所以它的加載與卸載的成本很低。每個ViewStub都可以使用android:layout屬性指定要加載的布局。

下面這個ViewStub用於一個半透明的ProgressBar的加載。它只有在新工作開始時才會顯示。

<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" />

加載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/>標簽。

以上所述是小編給大家介紹的Android布局性能優化之按需加載View,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved