android約束布局問世已經有一段時間了,對於最初的一些開發者來說,早已習慣了相對布局或線性布局的使用,基本上可以滿足日常開發的需求。但是這樣一來,約束布局不就沒有它存在的意義了嗎。
從谷歌官方資料來看,約束布局在某些情況下表現要高於線性布局以及相對布局。其特點是層級單一,所有控制項均處於同一層級。
帶你了解android約束布局constraintlayout
約束布局的強大
1、圓形定位
可以讓乙個控制項以另乙個控制項的中心為中心點,來設定其相對與該中心點的距離和角度
2、障礙
當需要某一控制項的位置是根據某幾個控制項寬度改變而改變時,可以設定某幾個控制項為一組,目標控制項對這組控制項設定障礙,從而達到效果。
3、guidelines
在橫縱兩個方向上可以設定guideline,其用於幫助控制項約束時提供邊界。如需要兩個控制項整體居中。則設定縱軸方向guideline在50%地方,之後左右兩邊各乙個控制項既滿足居中條件。
4、自動新增約束
自動新增約束的方式主要有兩種,一種叫autoconnect,一種叫inference
autoconnect是生效後,下乙個新增的控制項自動新增約束。
inference是給當前頁面內所有控制項自動新增約束。
注意自動新增約束不會百分百的準確,仍然需要我們進行手動調整。
5、尺寸約束
約束布局中不推薦使用match_parent這個值,如果想滿足效果,設定寬或高為0dp。
6、寬高比
通過layout_constraintdimensionratio設定乙個比例即可,如2:1 。若希望寬度充滿全屏,高度按比例,則需要在前面加上"h",之後再加上比例。寬和高同時要設定0dp。
7、百分百寬高
百分比寬高為設定自身乙個0到1之間的值,以自身為基數乘以比例。
8、位置偏向
可以設定位置偏向某一方向百分比。如偏左30%,即控制項整體位置偏左30%。
9、權重
與線性布局一樣,約束布局也可以設定權重
10、鏈
約束布局提供了5種鏈式結構,權重鏈就是其中一種。使用不同的結構可以達到不同的效果。
Android介面布局一 約束布局
原文 一 新增依賴 引入我們的constraintlayout,在build.gradle中加入 compile com.android.support.constraint constraint layout 1.0.2 二 屬性介紹layout constraintright toleftof ...
ConstraintLayout 約束布局
使用constraintlayout需要我們新增如下依賴 compile com.android.support.constraint constraint layout 1.0.0 alpha4 偏離父容器左邊緣的距離為父容器寬度的25 偏離父容器上邊緣的距離為父容器高度的25 guideline...
ConstraintLayout 約束布局
在以前,android是使用布局如linearlayout relativelayout等來構建頁面,但這些布局使用起來很麻煩,並且經常需要一層一層巢狀,寫乙個簡單的頁面就需要費很大的勁。所以在16年i o大會上,google發布了全新的布局 constraintlayout,其他布局和constr...