Android約束佈局到底為什麼香?
ConstraintLayout是Android推出的一個佈局,其效能好,官方極力推薦使用ConstraintLayout來編寫佈局。其中文名字為約束佈局,ConstraintLayout和RelativeLayout似乎有很多相似的地方,但是ConstraintLayout更靈活,在適應螢幕大小變化方面更有優勢。官方文件中的說法是“ Constraint Layout的所有功能都可以直接從Layout Editor的視覺化工具獲得,因為layout API和Layout Editor是專門為彼此構建的。 因此,您可以透過拖放而不是編輯XML來完全使用約束佈局來構建佈局。 ”
或許有些人會想,RelativeLayout已經很香了,為什麼還要使用ConstraintLayout呢?
我們都知道,在佈局巢狀過多時就會出現一些效能問題。之前我們可以去透過RelativeLayout或者GridLayout來減少這種佈局巢狀的問題。現在,我們可以改用ConstraintLayout來減少佈局的層級結構。ConstraintLayout相比RelativeLayout,其效能更好,也更容易使用。
約束佈局,約束的佈局,那麼在這裡面,約束指的是什麼呢?
約束是此佈局的基本構建塊。 它將一個視窗小部件的定位點與另一個視窗小部件或父視窗小部件連線起來。 有多種約束條件可以操縱以建立響應式UI,它也可以更好地適應不同的螢幕尺寸。
在約束佈局中,確定view的位置,至少需要一個水平和垂直約束
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"
這樣便得到一個垂直與水平居中的佈局
而約束佈局中這樣的寫法有哪些呢?
-
layout_constraintLeft_toLeftOf
-
layout_constraintLeft_toRightOf
-
layout_constraintRight_toLeftOf
-
layout_constraintRight_toRightOf
-
layout_constraintTop_toTopOf
-
layout_constraintTop_toBottomOf
-
layout_constraintBottom_toTopOf
-
layout_constraintBottom_toBottomOf
-
layout_constraintBaseline_toBaselineOf
-
layout_constraintStart_toEndOf
-
layout_constraintStart_toStartOf
-
layout_constraintEnd_toStartOf
-
layout_constraintEnd_toEndOf
這些屬性的值,可以是parent也可以是某個元件的id,也就是說,約束可以基於整體佈局,也可以居於某個元件進行約束
而約束於垂直和水平後的位置,則可以使用
app:layout_constraintVertical_bias="0.68" app:layout_constraintHorizontal_bias="0.3"
來進行調節,數值為0~1
整體使用起來的感覺就是,真香
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2743769/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android入門教程:ConstraintLayout約束佈局AndroidAI
- Flutter學習:什麼是Container以及佈局約束的實現FlutterAI
- Android 約束佈局(ConstraintLayout)1.1.0 版詳解AndroidAI
- 【譯】Flutter | 深入理解佈局約束Flutter
- Android Material Design控制元件使用(一)——ConstraintLayout 約束佈局AndroidMaterial Design控制元件AI
- 前端響應式佈局為什麼是個坑?前端
- 做精益工廠佈局是為了什麼?
- 聊聊為什麼淘寶要提出「雙飛翼」佈局
- ConstraintLayout 約束佈局的幾個新特性筆記整理AI筆記
- 約束佈局ConstraintLayout看這一篇就夠了AI
- 哲♂學三幻神帶你學習ConstraintLayout(約束佈局)AI
- 為什麼在資料倉儲中很少使用主外來鍵約束
- Android 佈局Android
- 降本增效——券商們為什麼必須佈局小程式?
- switch健身環?為什麼越炒越“香”?
- C#中泛型約束(where)是什麼?C#泛型
- 【SQL】15 SQL 約束(Constraints)、NOT NULL 約束、UNIQUE 約束、PRIMARY KEY 約束、FOREIGN KEY 約束、CHECK 約束、DEFAULT約束SQLAINull
- 精益生產佈局是什麼?
- Android佈局概述Android
- Android xml 佈局AndroidXML
- Logical Standby中為什麼要求表中資料的唯一性約束
- Android Context 到底是什麼?AndroidContext
- Android中常見的佈局和佈局引數Android
- android佈局------RelativeLayout(相對佈局)詳解Android
- android筆記二(水平佈局與垂直佈局)Android筆記
- [資料庫]資料庫中為什麼不推薦使用外來鍵約束資料庫
- android RecyclerView佈局真的只是那麼簡單!AndroidView
- 我們工作到底為了什麼
- Android學習—— Android佈局Android
- Android 佈局優化Android優化
- android 介面佈局(大概)Android
- Android:JNI 與 NDK到底是什麼?Android
- 當遇到css佈局,你在考慮什麼?CSS
- 精益工廠佈局的精髓是什麼?
- Python到底是什麼?為什麼要學Python?Python
- Python 到底有多“香”Python
- Javaweb-約束-外來鍵約束JavaWeb
- 也許table佈局專為form表單佈局而生?ORM