日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

viewStub 延迟布局加载

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 viewStub 延迟布局加载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • 1、簡介
        • 2、結構布局
        • 3、功能文件

1、簡介

打開 activity 的時候,減少一些布局的加載。加快activity 顯示的速度

2、結構布局

3、功能文件

  • test_view_stub.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" ><TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/text_id"android:text="Hello Test ViewStub"android:textSize="30dp"android:textColor="@color/colorAccent"></TextView> </LinearLayout>

    2) activity_main.xml 文件
    主界面 布局文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.lum.myapplication.MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"android:textSize="40dp"android:onClick="onClick"/><ViewStubandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/viewStub"android:layout="@layout/test_view_stub"android:inflatedId="@+id/replace_view_stub"/></LinearLayout>

    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 延迟布局加载的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。