zoukankan      html  css  js  c++  java
  • android学习---ViewStub惰性装载控件

    ViewStub

    简单示例

    main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <!-- 静态的加载布局文件 -->
    
        <include
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            layout="@layout/next" >
        </include>
    
        <!-- 动态的加载布局文件 -->
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#FFCCDD" >
    
            <ViewStub
                android:id="@+id/stub"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout="@layout/next" >
            </ViewStub>
    
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="动态添加布局" >
            </Button>
    
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="动态隐藏布局" >
            </Button>
        </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" >
    
        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </LinearLayout>

    main.java

    package com.leaf.android;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewStub;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RatingBar;
    
    public class Main extends Activity {
    
        private Button button1, button2;
        private ViewStub viewStub;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            button1 = (Button) this.findViewById(R.id.button1);
            button2 = (Button) this.findViewById(R.id.button2);
            viewStub = (ViewStub) this.findViewById(R.id.stub);
            button1.setOnClickListener(new OnClickListener() {
    
                public void onClick(View v) {
                    // 表示填充动态布局
                    View view = viewStub.inflate();
                    LinearLayout layout = (LinearLayout) view;
                    RatingBar bar = (RatingBar) layout
                            .findViewById(R.id.ratingBar1);
                    bar.setNumStars(3);
    
                }
            });
    
            button2.setOnClickListener(new OnClickListener() {
    
                public void onClick(View v) {
                    viewStub.setVisibility(View.GONE);// 隐藏布局
                }
            });
        }
    }

    效果:

  • 相关阅读:
    将时间超过万的数字转换为保留两位小数的阅读
    获取日期的最早和最晚时间
    Mybatis 关联查询分页问题的解决
    使用 java stream 获取两个集合之间的交集.差集
    使用 Stream 流对集合排序,包含对空属性的处理
    SpringBoot 多个子项目中下载 excel 报错解决方法
    单元测试捕获异常的写法
    单元测试用例需要登录信息的写法
    openwaf实战
    70个python练手项目
  • 原文地址:https://www.cnblogs.com/lea-fu/p/3299573.html
Copyright © 2011-2022 走看看