ConstrainsLayout 佈局

寫在前面

參考文章:
1.https://developer.android.google.cn/training/constraint-layout/#adjust-the-constraint-bias
2.https://developer.android.google.cn/reference/android/support/constraint/ConstraintLayout#VisibilityBehavior
3.https://blog.csdn.net/zxt0601/article/details/72736802
4.https://blog.csdn.net/guolin_blog/article/details/53122387

兩篇官方文檔,非常詳細,第一參考資料,google瀏覽器打開,非常詳細。第三篇有demo和中文解釋,第四篇爲郭神的,一些技巧,但都在官方文檔可以找到。所以本文就重點在於記錄一些自己學習的時候比較模糊和理解錯的地方。

學習思路

類比其他佈局,linearLayout(權重思想) ,RelativeLayout(參考系思想),這樣理解就很方便了。

  1. 版本:最好是1.1之後的,因爲之前的有很多屬性都沒有加,之後的版本纔有,這是一個分水嶺;
  2. 每個視圖都有一個水平和垂直的約束,每個約束表示與另一個視圖,父佈局或不可見指南的連接或對齊。每個約束定義視圖沿垂直軸或水平軸的位置;使用該佈局時,可以利用IDE去減少我們的工作,參考郭霖文章和google的講述;
  3. 理解layout_goneMarginLeft(right/top等):當參考系view不見了gone,layout_goneMarginLeft屬性纔有作用;可以參考自己的demo。
  4. 引入角度參考系:利用圓來進行view定位,要記住參考view的中心點作爲圓心的;
  5. 可以設置guideline 來作爲參考,不是非得parent。
  6. 引入chain的概念;
  7. 可以用view的自身寬高比限定長寬;
  8. constraint中android:layout_width和 android:layout_height 值有:
  • 使用特定維度(文字值,例如123dp或Dimension參考)
  • 使用WRAP_CONTENT,這將要求小部件計算自己的大小
  • 使用0dp,相當於“ MATCH_CONSTRAINT”

前兩個以與其他佈局類似的方式工作。最後一個(0dp)將以匹配所設置的約束的方式調整窗口小部件的大小。如果設置了邊距,則在計算中將考慮它們. 好好理解第8點,很重要。如果不明白可以看demo 和第三篇文章。

  1. android:min/maxWidth 屬性只有在view爲wrap_content 纔有用,這個和view的繪製模式很像。
  2. 後面嘗試在項目中使用,才能更深刻領悟。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章