android -------- ConstraintLayout介紹 (一)

ConstraintLayout 翻譯爲 約束佈局,也有人把它稱做 加強型的相對佈局,由 2016 年 Google I/O 推出。html

扁平式的佈局方式,無任何嵌套,減小布局的層級,優化渲染性能。從支持力度而言,將成爲主流佈局樣式,徹底代替其餘佈局。java

 

版本android

Android Studio是2.2或以上版本編輯器

ConstraintLayout是一個Support庫,意味着向前兼容,它能夠兼容至API 9,也就是Android 2.3,鑑於如今市場上手機基本都是2.3及以上的,因此若是不是特殊狀況,開發者能夠不用考慮版本問題。ide

 

須要在build.gradle中加入工具

implementation 'com.android.support.constraint:constraint-layout:1.1.1'

新特性佈局

相對於傳統佈局,ConstraintLayout在如下方面提供了一些新的特性:性能

  • 相對定位
  • 外邊距
  • 居中和傾向
  • 可見性的表現
  • 尺寸約束
  • Chain
  • 輔助工具

 

Layout Editor全景

 

  • 工具欄(Toolbar):提供在編輯器中配置佈局外觀和編輯佈局屬性的按鈕
  • Palette:提供小部件和佈局的列表,您能夠將它們拖動到編輯器內的佈局中
  • Component Tree:顯示佈局的視圖層次結構。在此處點擊某個項目將看到它在編輯器中被選中
  • 設計視圖:用來顯示界面
  • blueprint視圖:在該視圖中能夠清晰的看到佈局相關信息,約束關係、邊距等
  • 屬性(Attributes):針對當前選擇的視圖提供屬性控件

 

Design和Text選項卡

  • Design:能夠在LayoutEditor中配置佈局的外觀
  • Text :查看xml中的佈局代碼,同時在Preview窗口中查看當前界面顯示

 

優勢:gradle

1.性能更優,在測量/佈局階段的性能比RelativeLayout高40%,詳細對比可見:解析ConstraintLayout的性能優點
 優化

2.基本全部複雜的佈局都只須要一層,之因此說是基本全部,意味着有特殊狀況,就須要嵌套了

 

 

3.百分比對齊自適應,美滋滋,能夠使用Guidelines參照線,美滋滋。

 

4.能夠直接拖拽控件,手動調整參數。

 

缺點:

1.界面控件很複雜的時候,拖拉卡頓,以及容易誤操做;

2.更多的新增的XML屬性;

3.不支持gravity屬性;

4.每一個控件都必須有id;

 

拖拽控件能夠參考郭霖大神的博客: https://blog.csdn.net/guolin_blog/article/details/53122387

 

官網:

      https://constraintlayout.com/basics/barriers.html

      https://developer.android.google.cn/reference/android/support/constraint/ConstraintLayout#Chains

相關文章
相關標籤/搜索