摘要:今天寫(xiě)一下內(nèi)容很簡(jiǎn)單是一個(gè)不可見(jiàn)的,沒(méi)有尺寸,不會(huì)繪制任何東西的布局。在加載完成后就會(huì)被移除,它所占用的空間就會(huì)被新的布局替換。還是來(lái)說(shuō)一下具體的用法,比較清晰。一旦調(diào)用上面的方法后就會(huì)變成了。
今天寫(xiě)一下 ViewStub ,內(nèi)容很簡(jiǎn)單!
ViewStub 是一個(gè)不可見(jiàn)的,沒(méi)有尺寸,不會(huì)繪制任何東西的布局。主要用于實(shí)現(xiàn) View 的延遲加載,可以避免浪費(fèi)資源,減少布局的繪畫(huà),只有需要的時(shí)候才會(huì)加載。
在 ViewStub 加載完成后就會(huì)被移除,它所占用的空間就會(huì)被新的布局替換。還是來(lái)說(shuō)一下具體的用法,比較清晰。
用法
// 在布局文件中,你就當(dāng)做普通 View 使用即可
<");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:background="@color/colorAccent"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="內(nèi)容區(qū)域"/>
<ViewStub
android:id="@+id/vs"
android:layout_width="match_parent"
android:layout_height="300dp"
// 當(dāng) ViewStub 加載后,就會(huì)被下面這個(gè)布局占用
android:layout="@layout/activity_main"/>
LinearLayout>
加載 ViewStub 的時(shí)候可以使用方法:
findViewById(R.id.vs).setVisibility(View.VISIBLE); 或者 View view = (findViewById(R.id.vs).inflate());
注意,如果你不調(diào)用上面的方法的話,ViewStub 是不會(huì)被加載的,包括 layout 屬性中的布局,這也就是上面所說(shuō)的減少資料,只有你需要了,調(diào)用上面的方法才會(huì)加載布局。一旦調(diào)用上面的方法后 ViewStub 就會(huì)變成 null 了。
應(yīng)用場(chǎng)景
頁(yè)面本身有一個(gè)布局,當(dāng)由于某些錯(cuò)誤,這個(gè)布局不加載的時(shí)候,這個(gè)時(shí)候你就可以讓 ViewStub 加載你預(yù)留的空白布局了。如果提前寫(xiě)兩套布局,根據(jù)狀態(tài)使用 VISIBILBE 來(lái)調(diào)整的話,這種是你在進(jìn)入這個(gè)頁(yè)面,布局上面所有的控件都會(huì)加載,是會(huì)浪費(fèi)資源的(有了這個(gè)空白布局一直就處于不顯示狀態(tài)的話)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/7290.html
摘要:好處官方對(duì)的解析一個(gè)不可見(jiàn)大小為的試圖下面會(huì)分析這兩點(diǎn)實(shí)現(xiàn)好處顯示優(yōu)酷視頻加載評(píng)論列表的,當(dāng)沒(méi)有數(shù)據(jù)或者網(wǎng)絡(luò)加載失敗時(shí),如果空列表的會(huì)占用資源當(dāng)有數(shù)據(jù)時(shí),才會(huì)列表的,延遲加載了布局使用步驟文件每一個(gè)必須有屬性,其中的值就是被的的可以通過(guò)這 1.ViewStub好處 ViewStub is a lightweight view with no dimension that doesn’...
閱讀 3748·2021-09-22 15:28
閱讀 1361·2021-09-03 10:35
閱讀 946·2021-09-02 15:21
閱讀 3550·2019-08-30 15:53
閱讀 3549·2019-08-29 17:25
閱讀 630·2019-08-29 13:22
閱讀 1612·2019-08-28 18:15
閱讀 2353·2019-08-26 13:57