欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 快速实现 ViewStub的使用

程序员文章站 2022-03-20 13:05:20
...

一、概述

ViewStub 是用来做 View延迟加载 的 .

源码Demo下载链接–>点我~!
码云使用方法点我~!

二、实现

public class MainActivity extends AppCompatActivity {

    private ViewStub mVsContent;        // 正文view

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            mVsContent.inflate();


            TextView mTvContent = findViewById(R.id.tv_content);
            mTvContent.setText(mTvContent.getText().toString() + ",,,,findviewbyid ");
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mVsContent = findViewById(R.id.vs_content);

        mVsContent.setLayoutResource(R.layout.layout_content);


        new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    sleep(3 * 1000);
                    handler.sendEmptyMessage(0);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }.start();

    }
}

关键代码:

mVsContent.setLayoutResource(R.layout.layout_content);
mVsContent.inflate();

实现非常简单.
inflate() 执行之后,才开始真正的加载view.可以用作延迟加载view