ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大會上重點宣傳的一個功能。我們都知道,在傳統的Android開發當中,界面基本都是靠編寫XML代碼完成的,雖然Android Studio也支持可視化的方式來編寫界面,但是操作起來並不方便,我也一直都不推薦使用可視化的方式來編寫Android應用程序的界面。
而ConstraintLayout就是為了解決這一現狀而出現的。它和傳統編寫界面的方式恰恰相反,ConstraintLayout非常適合使用可視化的方式來編寫界面,但並不太適合使用XML的方式來進行編寫。當然,可視化操作的背后仍然還是使用的XML代碼來實現的,只不過這些代碼是由Android Studio根據我們的操作自動生成的。
另外,ConstraintLayout還有一個優點,它可以有效地解決布局嵌套過多的問題。我們平時編寫界面,復雜的布局總會伴隨着多層的嵌套,而嵌套越多,程序的性能也就越差。ConstraintLayout則是使用約束的方式來指定各個控件的位置和關系的,它有點類似於RelativeLayout,但遠比RelativeLayout要更強大。
為了要使用ConstraintLayout,我們需要在app/build.gradle文件中添加ConstraintLayout的依賴,如下所示。
dependencies { compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' }
目前ConstraintLayout庫最新的版本是1.0.0-beta4,還沒有推出正式穩定版本
打開res/layout/activity_main.xml文件,Android Studio自動創建的這個布局默認使用的是RelativeLayout,我們可以通過如下操作將它轉換成ConstraintLayout。
轉換完成之后,原RelativeLayout中的內容也會自動轉換到ConstraintLayout中
具體操作學習詳見:http://blog.csdn.net/guolin_blog/article/details/53122387
Inspector最中間的那個正方形區域,它是用來控制控件大小的。一共有三種模式可選,每種模式都使用了一種不同的符號表示,點擊符號即可進行切換。
表示wrap content,這個我們很熟悉了,不需要進行什么解釋。
表示固定值,也就是給控件指定了一個固定的長度或者寬度值。
表示any size,它有點類似於match parent,但和match parent並不一樣,是屬於ConstraintLayout中特有的一種大小控制方式,下面我們來重點講解一下。
自動添加約束的方式主要有兩種,一種叫Autoconnect,一種叫Inference
本文學習來源:http://blog.csdn.net/guolin_blog/article/details/53122387