首先看下API中的ViewStub
根據的文檔的說明,ViewStub是一種默認不可見的試圖,它沒有大小,所以不能被改變,也不能通過某些把viewstub添加到布局當中來,
不過我們可以使用inflate()來吧ViewStub中的試圖增加進行,這樣可以實現動態的添加試圖,不必要每次在onCreate()的時候就加載布局,可以提高我們的性能。
Demo中的使用方法:
1:新建布局文件 設置<ViewStub>節點
2: 在Activity中進行按鈕點擊 viewStub = (ViewStub) findViewById(R.id.mystub);
3: View view = viewStub.inflate(); 把ViewStub中的View增添進來
下面Demo源代碼:
主Activity類:
[java]
- package com.jiangqq.viewstubdemo;
-
- import Android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewStub;
- import android.widget.Button;
-
- public class ViewStubActivity extends Activity {
- private Button btn;
- private ViewStub viewStub;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn = (Button) findViewById(R.id.btn);
- btn.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- viewStub = (ViewStub) findViewById(R.id.mystub);
- View view = viewStub.inflate();
- v.setEnabled(false);
- }
- });
- }
- }
布局文件:
main.xml:
[html]
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <Button
- android:id="@+id/btn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="點擊確定" />
-
- <ViewStub
- android:id="@+id/mystub"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout="@layout/demo_viewstub" >
- </ViewStub>
-
- </LinearLayout>
demo_viewstub.xml:
[html]
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="ViewStubDemo_Byjiangqq" />
-
- </LinearLayout>
效果截圖: