1. 概述:

ViewStub组件和<include>标签的作用类似,主要是为了提高布局的重用性,及布局的模块化。它们之间最大的差别是,ViewStub中的布局不会随着它所在布局的渲染而渲染,而<include>标签中的布局会随着它所在布局的渲染而渲染,ViewStub中的布局只有在你需要的时候才会渲染到主界面中。

2. 效果图:

(1)在ButtonOne与ButtonTwo之间存在一个ViewStub布局,如下图:

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

3. 实现代码:

(1)res/layout/main.xml实现:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
  3. android:orientation = "vertical"
  4. android:layout_width = "fill_parent"
  5. android:layout_height = "fill_parent"
  6. >
  7. <Button
  8. android:id = "@+id/show"
  9. android:text = "ButtonOne"
  10. android:layout_width = "wrap_content"
  11. android:layout_height = "wrap_content"
  12. />
  13. <ViewStub
  14. android:id = "@+id/viewStub"
  15. android:layout = "@layout/green_layout"
  16. android:layout_width = "300dip"
  17. android:layout_height = "300dip"
  18. />
  19. <Button
  20. android:layout_width = "wrap_content"
  21. android:layout_height = "wrap_content"
  22. android:text = "ButtonTwo"
  23. />
  24. </LinearLayout>

(2)main.xml中ViewStub组件里的布局实现:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android = "http://schemas.android.com/apk/res/android"
  4. android:layout_width = "match_parent"
  5. android:layout_height = "match_parent"
  6. android:background = "@color/green">
  7. </LinearLayout>

(4)主Activity实现:

  1. package com.focus.fishme;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.ViewStub;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. public class ViewStubActivity extends Activity {
  9. private ViewStub mViewStub;
  10. private Button mShow;
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. mViewStub = (ViewStub) findViewById(R.id.viewStub);
  16. mShow = (Button) findViewById(R.id.show);
  17. mShow.setOnClickListener(new OnClickListener() {
  18. public void onClick(View view) {
  19. if (mViewStub != null) {
  20. mViewStub.inflate();
  21. }
  22. }
  23. });
  24. }
  25. }

转自:http://blog.csdn.net/mayingcai1987/article/details/6238609

Android中ViewStub组件使用的更多相关文章

  1. android中四大组件之间相互通信

    好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...

  2. Android中Intent组件详解

    Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...

  3. Android中四大组件总结

    android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...

  4. Android中BroadcastReceiver组件具体解释

    Android系统的4个组件最终还剩一种组件了BroadcastReceiver,这个组件是全局监听器,能够监听系统全局的广播消息,能够方便的实现系统中不同组件之间的通信 BroadcastRecei ...

  5. Android笔记(六) Android中的组件

    一个软件可以吸引到用户,除了优秀的功能可以解决用户的问题之外,良好的用户界面也并不可少.一个软件的功能不管多么优秀,但是没有提供友好的界面来让用户操作,将很难吸引到最终用户. Android提供了大量 ...

  6. Android中各组件的生命周期

    1.Activity生命周期图 二.activity三种状态 (1)active:当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于活动状态,同一个 ...

  7. Android中四大组件

    Activity  BroadCast Receiver 广播接收者 Service  服务 Content Provider 内容提供者   四大组件都需要在清单文件里面配置一下

  8. android中各种组件的生命周期问题

    1,activiy生命周期 http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/ 结合ativity的状态转换来看才 ...

  9. Android中GridView通过自定义适配器(未优化)实现图文视图排列

    Android中GridView组件用来以网格方式排列视图,与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用该组件.下面我们通过代码实现如下图例(为了方便截图,将事件处理(土 ...

随机推荐

  1. Thinkphp3.2使用scws中文分词 提取关键词

    SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统).1.下载scws官方提供的类(这里使用的是pscws第四版的)http://www ...

  2. UIButton基础知识

    基本属性 1.frame;坐标:title:titlecolor:字体颜色:titleShadowColor:字体阴影:image:图片: backgroundImage:背景图片: 2.forsta ...

  3. IC卡

    本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . IC卡 (Integrated Circuit Card,集成电路卡),也称智能卡(Smart card).智慧卡(Intelligent ...

  4. CC++初学者编程教程(12) 基于rhel6.3的Oracle数据库学习环境搭建

    前言 安装oracle 11g系统最好是1G以上内存,硬盘至少需要4.5G空间. 至少环境在Linux Server release 5.3以上. win安装包 win32_11gR2_databas ...

  5. CC++初学者编程教程(8) VS2013配置编程助手与QT

    1. 2. 配置编程助手 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26 ...

  6. LeetCode-001 Two Sum

    [题目] Given an array of integers, find two numbers such that they add up to a specific target number. ...

  7. 和Eclipse一起走过的日子

    一见钟情    大二上学期,第一次接触java Web.老师为了帮助我们从底层理解java Web的执行环境,要求我们不能使用不论什么IDE,仅仅能用记事本.    好吧,老师也是为了咱好.简单的一个 ...

  8. C#核编之一个简单的C#程序

    构建一个简单的C#应用程序需要注意一下几点: 1.C#要求所有的程序逻辑都包含在一个类型定义中       --->这里的类型指的是(类,接口,结构,枚举,委托中的一个或多个) 2.与其他语言不 ...

  9. linux查看端口占用

    今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用. 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat ...

  10. mybatis动态sql语句问题

    1.关于mybatis的insertintoselect命令未结束问题         添加:  useGeneratedKeys="false"     官网的解释是 允许 JD ...