• [Android]Android布局优化之 ViewStub


    转载请标注:转载于http://www.cnblogs.com/Liuyt-61/p/6602926.html 

    ----------------------------------------------------------------

    >使用ViewStub惰性加载

    作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示,也不会占用位置,从而在解析layout时节省cpu和内存。

    common_text.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" >
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="隐藏内容" />
    
    </LinearLayout>
    
    ------------------------------------------------
    main.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" >
    
        <include layout="@layout/common_title" />
    
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <TextView
                android:id="@+id/textView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="正文内容"
                android:textSize="16sp" />
    
            <include layout="@layout/common_progress" />
        </FrameLayout>
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="显示隐藏内容" />
    
        <ViewStub
            android:id="@+id/viewStub"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout="@layout/common_text" />
    
    </LinearLayout>
    --------------------------------------
    MainActivity.java
    
    package com.Liuyt.s03_e22_include;
    
    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;
    
    public class MainActivity extends Activity {
    
        private Button btn;
        private ViewStub viewStub;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn = (Button) findViewById(R.id.button);
            viewStub = (ViewStub) findViewById(R.id.viewStub);
            btn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    viewStub.inflate();
                }
            });
        }
    }
  • 相关阅读:
    C#学习之自定义类实现foreach
    C#学习之用迭代器实现枚举器
    silverlight学习之获取照片的路径
    Java语言基础基本数据类型与运算符
    Java语言基础数组
    Asp.Net 学习资源列表
    测试第一篇BLOG文,高亮代码
    当屌丝想看《蜀山剑侠传》[python屏幕抓取]
    jQuery数据显示插件整合
    腾讯面试题:50个阶梯,你一次可以上一阶或两阶,走上去,共有多少种走法【原】
  • 原文地址:https://www.cnblogs.com/Liuyt-61/p/6602926.html
Copyright © 2020-2023  润新知