viewStub 延迟布局加载
生活随笔
收集整理的這篇文章主要介紹了
viewStub 延迟布局加载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1、簡介
- 2、結構布局
- 3、功能文件
1、簡介
打開 activity 的時候,減少一些布局的加載。加快activity 顯示的速度
2、結構布局
3、功能文件
延遲顯示的 布局文件
2) activity_main.xml 文件
主界面 布局文件
3) MainActivity.java
功能文件
package com.example.lum.myapplication;import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewStub; import android.widget.TextView;public class MainActivity extends AppCompatActivity {private ViewStub viewStub;View viewStubGetView = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewStub = (ViewStub) findViewById(R.id.viewStub);}/*① inflate操作只能進行一次,因為inflate的時候是將其指向的布局文件解析inflate 并替換掉當前ViewStub本身(由此體現出了ViewStub“占位符”性質),一旦替換后,此時原來的布局文件中就沒有ViewStub控件了②句不需要,如果用到setvisibility的話,那么①②兩句順序不可顛倒,否則報錯java.lang.IllegalStateException:ViewStub must have a non-null ViewGroup viewParent,因為viewstub不能反復inflate,只能inflate一次,setVisibility會間接調用inflate③ viewStub 已經被替換 原來id找不到了* */public void onClick(View view) {if (viewStubGetView == null)viewStubGetView = viewStub.inflate();// ①//viewStub.setVisibility(View.VISIBLE);// ②TextView textView = (TextView) viewStubGetView.findViewById(R.id.text_id);textView.setText("testView show");textView.setVisibility(View.VISIBLE);View viewStub = (ViewStub) findViewById(R.id.viewStub);//③if (viewStub == null)Log.i("TAG","viewStub 已經被替換");} }文件參考:
merge、include、ViewStub的作用及分析
https://blog.51cto.com/weijiancheng/2085997
總結
以上是生活随笔為你收集整理的viewStub 延迟布局加载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js上传图片到服务器
- 下一篇: js上传图片转base64格式