摘要:今天寫一下內容很簡單是一個不可見的,沒有尺寸,不會繪制任何東西的布局。在加載完成后就會被移除,它所占用的空間就會被新的布局替換。還是來說一下具體的用法,比較清晰。一旦調用上面的方法后就會變成了。
今天寫一下 ViewStub ,內容很簡單!
ViewStub 是一個不可見的,沒有尺寸,不會繪制任何東西的布局。主要用于實現 View 的延遲加載,可以避免浪費資源,減少布局的繪畫,只有需要的時候才會加載。
在 ViewStub 加載完成后就會被移除,它所占用的空間就會被新的布局替換。還是來說一下具體的用法,比較清晰。
用法
// 在布局文件中,你就當做普通 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="內容區域"/>
<ViewStub
android:id="@+id/vs"
android:layout_width="match_parent"
android:layout_height="300dp"
// 當 ViewStub 加載后,就會被下面這個布局占用
android:layout="@layout/activity_main"/>
LinearLayout>
加載 ViewStub 的時候可以使用方法:
findViewById(R.id.vs).setVisibility(View.VISIBLE); 或者 View view = (findViewById(R.id.vs).inflate());
注意,如果你不調用上面的方法的話,ViewStub 是不會被加載的,包括 layout 屬性中的布局,這也就是上面所說的減少資料,只有你需要了,調用上面的方法才會加載布局。一旦調用上面的方法后 ViewStub 就會變成 null 了。
應用場景
頁面本身有一個布局,當由于某些錯誤,這個布局不加載的時候,這個時候你就可以讓 ViewStub 加載你預留的空白布局了。如果提前寫兩套布局,根據狀態使用 VISIBILBE 來調整的話,這種是你在進入這個頁面,布局上面所有的控件都會加載,是會浪費資源的(有了這個空白布局一直就處于不顯示狀態的話)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7290.html
摘要:好處官方對的解析一個不可見大小為的試圖下面會分析這兩點實現好處顯示優酷視頻加載評論列表的,當沒有數據或者網絡加載失敗時,如果空列表的會占用資源當有數據時,才會列表的,延遲加載了布局使用步驟文件每一個必須有屬性,其中的值就是被的的可以通過這 1.ViewStub好處 ViewStub is a lightweight view with no dimension that doesn’...
閱讀 3672·2021-09-22 15:28
閱讀 1296·2021-09-03 10:35
閱讀 878·2021-09-02 15:21
閱讀 3474·2019-08-30 15:53
閱讀 3496·2019-08-29 17:25
閱讀 569·2019-08-29 13:22
閱讀 1555·2019-08-28 18:15
閱讀 2287·2019-08-26 13:57