Android组件ViewStub基本使用方法详解

 更新时间:2016年05月31日 17:24:51   投稿:lijiao  
这篇文章主要为大家详细介绍了Android组件ViewStub基本使用方法,感兴趣的小伙伴们可以参考一下

ViewStub可以在运行时动态的添加布局。帮助文档给定的定义是:

"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事先占据好位置,当需要的时候调用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动态模糊效果

    教你快速实现Android动态模糊效果

    相信大家都发现了越来越多的App里面使用了模糊效果,比如雅虎天气的界面,虽然我并不知道雅虎天气是怎么做出这种效果的,但是简单的模仿一下的话,还是能做到的。下面一起来学习学习。
    2016-08-08
  • Android实现可点击展开的TextView

    Android实现可点击展开的TextView

    这篇文章主要为大家详细介绍了Android实现可点击展开的TextView,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android调用相机并将照片存储到sd卡上实现方法

    Android调用相机并将照片存储到sd卡上实现方法

    Android中实现拍照有两种方法,一种是调用系统自带的相机,还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,需要的朋友可以了解下
    2012-12-12
  • Android应用开发中数据的保存方式总结

    Android应用开发中数据的保存方式总结

    这篇文章主要介绍了Android应用开发中数据的保存方式总结,包括对ROM、SD卡、SharedPreference这三种方式实现的核心代码的精选,需要的朋友可以参考下
    2016-02-02
  • Android仿微信通讯录打造带悬停头部的分组列表(上)

    Android仿微信通讯录打造带悬停头部的分组列表(上)

    这篇文章主要介绍了Android仿微信通讯录导航分组列表,使用ItemDecoration为RecyclerView打造带悬停头部的分组列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android实现双击TitleBar回顶部的功能示例代码

    Android实现双击TitleBar回顶部的功能示例代码

    一个简单易用的导航栏TitleBar,可以轻松实现IOS导航栏的各种效果,下面这篇文章主要给大家介绍了关于Android如何实现双击TitleBar回顶部功能的相关资料,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • 5个Android开发中比较常见的内存泄漏问题及解决办法

    5个Android开发中比较常见的内存泄漏问题及解决办法

    本文主要介绍了5个Android开发中比较常见的内存泄漏问题及解决办法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Android创建悬浮窗的完整步骤

    Android创建悬浮窗的完整步骤

    这篇文章主要给大家介绍了关于Android创建悬浮窗的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • android帮助文档打开慢的三种解决方法

    android帮助文档打开慢的三种解决方法

    本文介绍了“android帮助文档打开慢的三种解决方法”,需要的朋友可以参考一下
    2013-03-03
  • Android自定义View实现随机数验证码

    Android自定义View实现随机数验证码

    这篇文章主要为大家详细介绍了Android如何利用自定义View实现随机数验证码效果,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-06-06

最新评论