Android組件ViewStub基本使用方法詳解
ViewStub可以在運行時動態(tài)的添加布局。幫助文檔給定的定義是:
"A ViewStub is an invisible, zero-sized View that can be used to lazily inflate layout resources at runtime. When a ViewStub is made visible, or when inflate() is invoked, the layout resource is inflated. The ViewStub then replaces itself in its parent with the inflated View or Views. Therefore, the ViewStub exists in the view hierarchy until setVisibility(int) or inflate() is invoked. The inflated View is added to the ViewStub's parent with the ViewStub's layout parameters. Similarly, you can define/override the inflate View's id by using the ViewStub's inflatedId property.”
總之是:ViewStub可以給其他的view事先占據(jù)好位置,當需要的時候調用inflater()或者是setVisible()方法顯示這些View組件。
layout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/showBtn"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="show" />
<Button
android:id="@+id/deleteBtn"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_weight="1"
android:text="delete" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ViewStub
android:id="@+id/viewstub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/next" />
</LinearLayout>
</LinearLayout>
next.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Main.java:
package com.example.android_viewstub1;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.Button;
public class MainActivity extends Activity {
Button btn1, btn2;
ViewStub viewStub;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) this.findViewById(R.id.showBtn);
btn2 = (Button) this.findViewById(R.id.deleteBtn);
viewStub = (ViewStub) this.findViewById(R.id.viewstub);
btn1.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View arg0) {
viewStub.setVisibility(View.VISIBLE);
}
});
btn2.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View arg0) {
viewStub.setVisibility(View.INVISIBLE);
}
});
}
}
效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android編程之桌面小部件AppWidgetProvider用法示例
這篇文章主要介紹了Android編程之桌面小部件AppWidgetProvider用法,結合具體實例形式分析了Android桌面組件AppWidgetProvider的功能、布局、權限設置等相關操作技巧,需要的朋友可以參考下2017-08-08
Android使用WebView實現(xiàn)文件下載功能
這篇文章主要為大家詳細介紹了Android使用WebView實現(xiàn)文件下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
Android Cocos Creator游戲開發(fā)平臺打包優(yōu)化實現(xiàn)方案
Cocos Creator是一款輕量、高效、免費開源的跨平臺游戲引擎,同時也是實時3D內容創(chuàng)作平臺,不僅支持2D、3D的游戲開發(fā),同時在HMI、IoT、XR、虛擬人偶等領域,均可提供一套完善的行業(yè)解決方案2022-11-11
Android學習教程之動態(tài)GridView控件使用(6)
這篇文章主要為大家詳細介紹了Android動態(tài)GridView控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11
android通過okhttpClient下載網(wǎng)頁內容的實例代碼
本篇文章主要介紹了android通過okhttpClient下載網(wǎng)頁內容的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
Android Webview添加網(wǎng)頁加載進度條實例詳解
這篇文章主要介紹了Android Webview添加網(wǎng)頁加載進度條實例詳解的相關資料,需要的朋友可以參考下2016-01-01

