定義一個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來載入佈局時,你可以通過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()去在獲取一次佈局。 一旦佈局可見,ViewStub在視圖層級中不會長久可見。它將會被android:inflatedId的值對應的佈局替換



Note:唯一的全店就是ViewStub不支援<merge/>標籤
Note:頁面元素不是反復隱藏和顯示的就使用viewstub
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()