Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Developers:按需求加載視圖

Android Developers:按需求加載視圖

編輯:關於Android編程

有時候你的布局可能需要使用較少的復雜視圖。無論它們是項目詳情,進度指示器,或者撤銷信息,你能通過僅僅在視圖被需要的時候加載的方式,來減少內存消耗和加快顯示。    定義一個ViewStub  —————————————————————————————————————————————————————————————— viewStub是一個沒有大小,在布局中不繪制或者不參與的輕量級視圖。同樣的,它便於在一個視圖結構增加或刪除。每個ViewStub僅需要包含android:layout屬性來指定將被包含的布局。    下面的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" />   

 

  加載ViewStub布局  ——————————————————————————————————————————————————————————————  當你想加載通過ViewStub指定的布局的時候,調用setVisiblity(View.VISIBLE)或者inflate()任一方法讓它可見。 
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);   
// or   
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();   

 

  注意:inflate()方法返回完成填充的視圖。所以如果你需要和這個布局交互,不需要調用findViewById()。    一旦可見/被填充,ViewStub元素不再是這個視圖結構的一部分。它被被填充的布局取代,並且這個布局的根視圖的ID被ViewStub的android:inflatedid屬性指定。(andorid:id屬性指定的ViewStub的ID僅僅到ViewStub布局可見/被填充之前有效。)   注意:ViewStub的一個缺點是現在它在布局中不支持<merge/>標識。   
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved