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 ...