Android布局優化之ViewStub的使用

2021-09-20 07:58:41 字數 911 閱讀 2231

最近剛好有看到viewstub,因此根據個人理解記錄下筆記。

viewstub是android布局優化的方式之一。

它可以讓部分布局延遲載入,從而提高頁面渲染速度。

因為viewstub是用於延遲載入使用,因此適用場景是一些不需要即時展示的頁面。

舉個例子,大家都用過登入頁面。

假設第一次你輸入登入使用者名稱和密碼錯誤時,第二次輸入會要求你輸入驗證碼。

這裡的驗證碼第一次渲染頁面時不需要顯示,因此可以適用延遲載入場景。

而像使用者名稱和密碼輸入框因為第一次顯示的時候就要求展示在頁面上,因此不適合使用viewstub。

可能大家會好奇,如果viewstub的作用是延遲載入。

那麼如果我把要延遲載入的布局visibility設定為gone不是一樣的效果嗎?

表面上看起來效果是一樣的,但是區別在哪呢?

設定某個布局模組為gone,但是系統在渲染該布局時還是會去計算這個布局模組的寬高等屬性,還是會把它新增到布局樹上。因此這個布局模組還是會占有渲染布局的部分時間。

而把該布局模組放在viewstub,系統在渲染該布局時並不會去理viewstub節點,因此可以節省渲染布局模組的時間。只有當需要展示時,才會去渲染。

正如我們之前所說的,viewstub下的布局是不會展示的。

那麼怎麼讓它展示呢?

獲得viewstub元件。

跟其他元件一樣通過findviewbyid(r.id.view_stub)獲得mviewstub;

顯示。有兩種方式:

兩種方式的區別在於通過inflate可以返回引用的布局view,可以通過該引用獲得布局view的其他元件。

inflate只能呼叫一次,不能呼叫多次,否則會報錯。

因為設定viewstub可見後,viewstub就不復存在了。

具體示例demo可以看github demo。

Android效能優化之布局優化

在乙個典型的顯示系統中,一般包括cpu gpu和display三個部分 display可以理解為螢幕或者顯示器,cpu是用來計算影象資料的,然後把計算好的資料交給gpu,gpu會對圖形資料進行渲染,再把渲染好的資料存到buffer 快取區 裡面,最後display也就是螢幕負責把buffer裡面的資...

Android布局優化

android布局一般是xml布局,然後呼叫setcontentview 方法,雖然這個呼叫很簡單,讓我們具體看一下setcontentview 方法的具體工作步驟 1 android讀取應用的資源資料 apk檔案內,儲存在內部儲存器或sd卡中 2 解析資源資料,展開布局 3 布局展開成為activ...

android 布局優化

主要用到三個標籤。1 include 用於重複使用某個布局,減少 的重複。2 merge 用於減少布局的巢狀的層數。當父布局與子布局的根節點使用的是相同的布局,並且用include來包括進父布局中。那麼這個時候可以使用merge來替代掉原來的自布局的根節點。舉個栗子 xmlns android an...