使用ConstraintLayout優化佈局

ConstraintLayout(約束佈局)是 Android Studio 推薦的佈局方式,能夠實現靈活的佈局,減少控件之間的嵌套,從而優化界面的渲染性能。

官方文檔:

以前我們用 LinearLayout、RelativeLayout 等實現的佈局,現在用 ConstraintLayout 都可以實現,而且佈局更輕巧,更扁平。

舉個例子,要實現下面的佈局,一個圖標和一段文字兩者居中對齊,而且文本長度不固定,考慮一下需要怎麼做?

以前,我們可能會採用下面這種方式實現,通過嵌套一層 LinearLayout 來包裹要居中的元素,最後實現的效果沒有任何問題,但不是最優的方案。

有了 ConstraintLayout 後,一切變得那麼簡單。不再需要嵌套一層,直接給元素添加約束就可以,二者通過 packed 合爲一體,佈局更加扁平。

這是 ConstraintLayout 的 ChainStype 屬性,LinearLayout 的 layout-weight 屬性也包含在其中,還可以指定左右邊距的比例,實在是太靈活、太強大了。

除此之外,還有 GuideLine,Barrier,Group,PlaceHolder 等用法,支持相對定位、角度定位、比例尺寸約束等特性,有了 ConstraintLayout 還要啥自行車。

另外,從 Android Studio 的 Layout Editor 界面中可以看出,官方已經不推薦使用 Legacy 裏的控件,包括 ListView、GridView、RelativeLayout 等。Layouts 裏的 ConstraintLayout、LinearLayout 和 FrameLayout 可以實現絕大多數的佈局,列表使用 RecyclerView 就夠了。在控件選擇上,沒有最好的,只有最合適的。


如果想了解更多,推薦這篇文章:約束佈局ConstraintLayout看這一篇就夠了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章