摘要:并且便于統一的修改與查看。一旦被顯示后,則將從視圖框架中移除,其也會失效,此時得到的也是空的。所以它可以有效的避免布局的嵌套,從而達到優化布局的效果。其他嵌套的中,盡量不要使用,因為會重新測量兩次。
作為android應用來講,無論應用本身多么美觀,功能多么強大,內容多么豐富。但如果App本身打開界面緩慢超過手機16ms刷新一次頁面的時間,就會產生卡頓。用戶體驗都會變得極差,導致用戶量減少。所以我們在開發過程中同樣要注重布局優化。
在Layout布局中如果有你想要引用的布局時,若該布局在不同的布局是公共布局,我們會多次使用到。這時可以使用
<-- container為引用布局的布局id -->
非常簡單只要在你所需要放置該布局的布局內部使用
在
除了layout_width與layout_height之外,我們還可以覆寫container中的任何一個layout屬性,如layout_gravity、layout_margin等,而非layout屬性則無法在
?
大家可以見到
雖然ViewStub是不占用任何空間的,但是每個布局都必須要指定layout_width和layout_height屬性,否則運行就會報錯。且ViewStub所要替代的layout文件中不能含有
ViewStub使用起來非常簡單,只要在需要的時候findViewById()招到它并調用setVisibility(View.VISIBLE)或者inflate()顯示它就可以了。
標簽小結標簽 | 使用原因 | 優化結果 | 使用舉例 |
---|---|---|---|
提取公共部分,提高布局復用性 | 減少測量,繪制時間 | App中有多個UI界面需要使用同一布局或部分布局時。如頁面標題toolBar復用時使用。 | |
布局層級減少 | 減少繪制工作量 | 當所需要復用的部分布局與要合并到的布局的根標簽一致時使用。(類似加強版include,減少布局層級,但耦合性更強)。 | |
無需第一時間展示于界面上,在需要時加載 | 減少測量,繪制時間 | 該界面不需要第一時間展示給用戶,如網絡報錯界面,或用戶信息下拉界面,在該界面中,但第一時間不需要顯示給用戶時使用。 |
?AndroidStudio上有一個神奇的功能,就是在Xml布局中我們可以在design標簽下進行布局可視化操作。但是該功能并不完善,屬于系統自動生成的一個布局,反而會讓布局內部凌亂不堪,難以讀懂,同時會造成卡頓,所以以前我們都是用該界面進行預覽查看;而ConstraintLayout約束布局這一新布局,它反而支持布局可視化操作,可以把它比喻成一個可視化視圖操作布局的RelativeLayout,ConstraintLayout是使用約束的方式來指定各個控件的位置和關系的。布局內部不需要嵌套其他布局,就可以完成你想要的界面出現。所以它可以有效的避免布局的嵌套,從而達到優化布局的效果。因為使用太過復雜,想要深入了解使用方法請點擊ConstraintLayout。
減少視圖樹層級結構系統在顯示沒一個視圖的時候,都要經理測量,布局,繪制的過程。如果我們的布局嵌套層數太多,會導致額外的測量、布局等,十分消耗系統資源,使UI卡頓,影響用戶體驗。所以要盡量減少是圖書層級結構,避免不必要的布局嵌套,使用更少嵌套的布局方式。
查看文件的視圖樹,我們可以使用DDMS來查看。首先運行項目在真機或虛擬機上。而后再到tools中打開DDMS。這里就不展開介紹了。
其他嵌套的LinearLayout中,盡量不要使用weight,因為weight會重新測量兩次。
Layout的選擇,以盡量減少View樹的層級為主,去除不必要的嵌套和View節點。比如如果LinearLayout嵌套過多,建議使用RelativeLayout減少布局嵌套。
RelativeLayout本身盡量不要嵌套使用。
View視圖的隱藏與現實,盡量使用invisible。因為gone,不占用空間,視圖會重新測量繪制;而invisible視圖不會重新繪制,但仍然占用空間位置。
布局調優工具:hierarchy viewer,Lint tool
鏈接:https://www.jianshu.com/p/faf...
閱讀更多
react-native技術的優劣*
開發了幾個小程序后,說說我對小程序的看法
NDK項目實戰—高仿360手機助手之卸載監聽
(Android)面試題級答案(精選版)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11885.html
摘要:需求最近遇到一個需求,平時被后臺慣著直接返回了樹形結構給到前端,前端對這種嵌套類型的數據如地區的級聯或菜單的樹形結構省掉了一層處理。當然,沒用好就相當于一堆廢鐵,甚至將導致一些不可預料的結果。相比起遞歸,我更喜歡這種方法。 需求 最近遇到一個需求,平時被后臺慣著直接返回了樹形結構給到前端,前端對這種嵌套類型的數據(如地區的級聯或菜單的樹形結構)省掉了一層處理。換了個后臺小哥哥返回了扁平...
摘要:三次握手和四次揮手的問題在面試中是最為常見的考點之一。上面有一個非常特殊的狀態,它是主動關閉的一方在回復完對方的揮手后進入的一個長期狀態,這個狀態標準的持續時間是分鐘,分鐘后才會進入到狀態,釋放套接字資源。 showImg(https://segmentfault.com/img/remote/1460000018918991); TCP三次握手和四次揮手的問題在面試中是最為常見的考點...
摘要:然而學習布局,你只要學習幾個手機端頁面自適應解決方案布局進階版附源碼示例前端掘金一年前筆者寫了一篇手機端頁面自適應解決方案布局,意外受到很多朋友的關注和喜歡。 十分鐘學會 Fiddler - 后端 - 掘金一.Fiddler介紹 Fiddler是一個http抓包改包工具,fiddle英文中有欺騙、偽造之意,與wireshark相比它更輕量級,上手簡單,因為只能抓http和https數據...
閱讀 3110·2021-11-10 11:36
閱讀 3312·2021-10-13 09:40
閱讀 6050·2021-09-26 09:46
閱讀 661·2019-08-30 15:55
閱讀 1409·2019-08-30 15:53
閱讀 1578·2019-08-29 13:55
閱讀 2997·2019-08-29 12:46
閱讀 3204·2019-08-29 12:34