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
- Android 約束佈局(ConstraintLayout)1.1.0 版詳解AndroidAI
- Flutter學習:什麼是Container以及佈局約束的實現FlutterAI
- Android Material Design控制元件使用(一)——ConstraintLayout 約束佈局AndroidMaterial Design控制元件AI
- 【譯】Flutter | 深入理解佈局約束Flutter
- 約束佈局ConstraintLayout看這一篇就夠了AI
- ConstraintLayout 約束佈局的幾個新特性筆記整理AI筆記
- Android 佈局Android
- 做精益工廠佈局是為了什麼?
- 前端響應式佈局為什麼是個坑?前端
- Android學習—— Android佈局Android
- 【SQL】15 SQL 約束(Constraints)、NOT NULL 約束、UNIQUE 約束、PRIMARY KEY 約束、FOREIGN KEY 約束、CHECK 約束、DEFAULT約束SQLAINull
- Android 佈局優化Android優化
- android --巧用 flexboxLayout 佈局AndroidFlex
- Android中常見的佈局和佈局引數Android
- 降本增效——券商們為什麼必須佈局小程式?
- switch健身環?為什麼越炒越“香”?
- C#中泛型約束(where)是什麼?C#泛型
- Android:JNI 與 NDK到底是什麼?Android
- Android FlexboxLayout 佈局詳解AndroidFlex
- 精益生產佈局是什麼?
- Android入門教程 | UI佈局之LinearLayout 線性佈局AndroidUI
- Android入門教程 | UI佈局之RelativeLayout 相對佈局AndroidUI
- 寫給 Android 開發的小程式佈局指南,Flex 佈局!AndroidFlex
- 到底為什麼我們需要 Clickhouse?
- Android開發之常用佈局Android
- Android的四個基本佈局Android
- Android效能優——佈局優化Android優化
- Android中佈局的優化Android優化
- Python到底是什麼?為什麼要學Python?Python
- [資料庫]資料庫中為什麼不推薦使用外來鍵約束資料庫
- Android XML佈局報錯:android/view/View$OnUnhandledKeyEventListenerAndroidXMLView
- Android開發 - 掌握ConstraintLayout(四)建立基本約束AndroidAI
- 約束
- Python 到底有多“香”Python
- 當遇到css佈局,你在考慮什麼?CSS
- 精益工廠佈局的精髓是什麼?
- Javaweb-約束-外來鍵約束JavaWeb