Android中ViewStub组件使用
1. 概述:
ViewStub组件和<include>标签的作用类似,主要是为了提高布局的重用性,及布局的模块化。它们之间最大的差别是,ViewStub中的布局不会随着它所在布局的渲染而渲染,而<include>标签中的布局会随着它所在布局的渲染而渲染,ViewStub中的布局只有在你需要的时候才会渲染到主界面中。
2. 效果图:
(1)在ButtonOne与ButtonTwo之间存在一个ViewStub布局,如下图:

(2)单击ButtonOne后渲染ViewStub中的布局,如下图:

3. 实现代码:
(1)res/layout/main.xml实现:
- <?xml version="1.0" encoding="utf-8"?>
 - <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
 - android:orientation = "vertical"
 - android:layout_width = "fill_parent"
 - android:layout_height = "fill_parent"
 - >
 - <Button
 - android:id = "@+id/show"
 - android:text = "ButtonOne"
 - android:layout_width = "wrap_content"
 - android:layout_height = "wrap_content"
 - />
 - <ViewStub
 - android:id = "@+id/viewStub"
 - android:layout = "@layout/green_layout"
 - android:layout_width = "300dip"
 - android:layout_height = "300dip"
 - />
 - <Button
 - android:layout_width = "wrap_content"
 - android:layout_height = "wrap_content"
 - android:text = "ButtonTwo"
 - />
 - </LinearLayout>
 
(2)main.xml中ViewStub组件里的布局实现:
- <?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:background = "@color/green">
 - </LinearLayout>
 
(4)主Activity实现:
- package com.focus.fishme;
 - import android.app.Activity;
 - import android.os.Bundle;
 - import android.view.View;
 - import android.view.ViewStub;
 - import android.view.View.OnClickListener;
 - import android.widget.Button;
 - public class ViewStubActivity extends Activity {
 - private ViewStub mViewStub;
 - private Button mShow;
 - @Override
 - public void onCreate(Bundle savedInstanceState) {
 - super.onCreate(savedInstanceState);
 - setContentView(R.layout.main);
 - mViewStub = (ViewStub) findViewById(R.id.viewStub);
 - mShow = (Button) findViewById(R.id.show);
 - mShow.setOnClickListener(new OnClickListener() {
 - public void onClick(View view) {
 - if (mViewStub != null) {
 - mViewStub.inflate();
 - }
 - }
 - });
 - }
 - }
 
转自:http://blog.csdn.net/mayingcai1987/article/details/6238609
Android中ViewStub组件使用的更多相关文章
- android中四大组件之间相互通信
		
好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...
 - Android中Intent组件详解
		
Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...
 - Android中四大组件总结
		
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
 - Android中BroadcastReceiver组件具体解释
		
Android系统的4个组件最终还剩一种组件了BroadcastReceiver,这个组件是全局监听器,能够监听系统全局的广播消息,能够方便的实现系统中不同组件之间的通信 BroadcastRecei ...
 - Android笔记(六) Android中的组件
		
一个软件可以吸引到用户,除了优秀的功能可以解决用户的问题之外,良好的用户界面也并不可少.一个软件的功能不管多么优秀,但是没有提供友好的界面来让用户操作,将很难吸引到最终用户. Android提供了大量 ...
 - Android中各组件的生命周期
		
1.Activity生命周期图 二.activity三种状态 (1)active:当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于活动状态,同一个 ...
 - Android中四大组件
		
Activity BroadCast Receiver 广播接收者 Service 服务 Content Provider 内容提供者 四大组件都需要在清单文件里面配置一下
 - android中各种组件的生命周期问题
		
1,activiy生命周期 http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/ 结合ativity的状态转换来看才 ...
 - Android中GridView通过自定义适配器(未优化)实现图文视图排列
		
Android中GridView组件用来以网格方式排列视图,与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用该组件.下面我们通过代码实现如下图例(为了方便截图,将事件处理(土 ...
 
随机推荐
- Android_Dialog cancle 和dismiss 区别
			
AlertDialog使用很方便,但是有一个问题就是:dismiss方法和cancel方法到底有什么不同? AlertDialog继承与Dialog,现在各位看看结构图: 然后在Dialog类中找到了 ...
 - pycharm Run/Debug Configrations
			
操作系统是win10,今天维护scrapy爬虫的时候发现pycharm调试配置失效了,导致花了好大力气去搜索配置的路径.在这儿记录下来方便以后查看. Script:C:\Python27\Lib\si ...
 - 对简单的正则表达式的理解V1.0
			
[^<]* 我得理解也是基本来自官方的解释 [] 我理解是它其中的内容,是指内容哦, 内容是可以选择的 字符 集合 ,比如说 @"<div style="color: ...
 - JSONObject和JSONArray
			
点击下载json工具 点击下载支持jar包 1.从Object到String 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可 ( ...
 - 论山寨手机与Android联姻的技术基础 【序】
			
山寨手机的兴起,离不开 MTK(联发科).MTK为手机制造提供了一揽子解决方案,其中既包括硬件,也包括软件.软件方面最重要的,是操作系统.MTK方案的软件的稳定性非常高,一方面是因为其硬件系统变化不大 ...
 - Mobile Service更新和 Notification Hub 对Android的支持
			
本周,我们要推出一些更新,使移动服务成为移动应用程序更强大.更灵活的后端,同时推出一个与移动服务或网站结合使用的免费 20MB SQL 数据库,并且将支持通过Notification Hub中的 GC ...
 - poj--1517
			
n从0取到9,一个for循环,n++,n=0,n<=9 n=4,求1/4!+1/3!+1/2!+1/1!+1/0! 需要一个for循环,i=n,i>=0,i-- sum+=factoria ...
 - shell programs
			
find * -not -path "docs/*" -regex ".*\.\(rb\)" -type f -print0 | xargs -0 gr ...
 - 网易云课堂_程序设计入门-C语言_第四周:循环控制_2念整数
			
2 念整数(5分) 题目内容: 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er san si 注意, ...
 - OC 语法基础一
			
1.判断字符串开头 或 结尾 测试字符串是否以aString开始 - (BOOL)hasPrefix:(NSString *)aString; 测试字符串是否以aString结尾 - (BOOL)ha ...