android约束布局的优缺点,Android约束布局用法

约束布局用法

当线性布局用

下面我们来实现一个常用的底部导航栏,5个导航栏

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/tab0"

android:layout_width="0dp"

android:layout_height="50dp"

android:background="@color/colorPrimary"

android:gravity="center"

android:text="tab1"

android:textColor="@color/colorWhite"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toLeftOf="@+id/tab1" />

android:id="@+id/tab1"

android:layout_width="0dp"

android:layout_height="0dp"

android:gravity="center"

android:text="tab2"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toRightOf="@+id/tab0"

app:layout_constraintRight_toLeftOf="@+id/tab2"

app:layout_constraintTop_toTopOf="@+id/tab0" />

android:id="@+id/tab2"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@color/colorAccent"

android:gravity="center"

android:text="tab3"

android:textColor="@color/colorWhite"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toRightOf="@+id/tab1"

app:layout_constraintRight_toLeftOf="@id/tab3"

app:layout_constraintTop_toTopOf="@+id/tab0" />

android:id="@+id/tab3"

android:layout_width="0dp"

android:layout_height="0dp"

android:gravity="center"

android:text="tab4"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toRightOf="@+id/tab2"

app:layout_constraintRight_toLeftOf="@+id/tab4"

app:layout_constraintTop_toTopOf="@+id/tab0" />

android:id="@+id/tab4"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@color/colorHoloOrangeLight"

android:gravity="center"

android:text="tab5"

android:textColor="@color/colorWhite"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toRightOf="@+id/tab3"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="@+id/tab0" />

添加权重控制比例

layout_constraintHorizontal_weight:横向的权重

layout_constraintVertical_weight:纵向的权重

如果上文中的tab3要大于其他四个tab,只需要在tab3的View添加app:layout_constraintHorizontal_weight="2",其他View设置为1,即可

android:id="@+id/tab2"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@color/colorAccent"

android:gravity="center"

android:text="tab3"

android:textColor="@color/colorWhite"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintHorizontal_weight="2"

app:layout_constraintLeft_toRightOf="@+id/tab1"

app:layout_constraintRight_toLeftOf="@id/tab3"

app:layout_constraintTop_toTopOf="@id/tab0" />

android:id="@+id/tab3"

android:layout_width="0dp"

android:layout_height="0dp"

android:gravity="center"

android:text="tab4"

android:textSize="20sp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintHorizontal_weight="1"

app:layout_constraintLeft_toRightOf="@+id/tab2"

app:layout_constraintRight_toLeftOf="@+id/tab4"

app:layout_constraintTop_toTopOf="@+id/tab0" />

当相对布局用

layout_constraintLeft_toLeftOf:当前View左边在某个View的左边,可以是parent与某个View的ID

layout_constraintLeft_toRightOf:当前View左边在某个View的右边,可以是parent与某个View的ID

layout_constraintRight_toRightOf:当前Viewr的右边在某个View的右边,可以是parent与某个View的ID

layout_constraintRight_toLeftOf:当前Viewr的右边在某个View的左边,可以是parent与某个View的ID

layout_constraintBottom_toBottomOf:当前Viewr的下边在某个View的下边,可以是parent与某个View的ID

layout_constraintBottom_toTopOf:当前Viewr的下边在某个View的上边,可以是parent与某个View的ID

layout_constraintTop_toTopOf:当前Viewr的上边在某个View的上边,可以是parent与某个View的ID

layout_constraintTop_toBottomOf:当前Viewr的上边在某个View的下边,可以是parent与某个View的ID

当百分比布局用

layout_constraintVertical_bias:垂直乖离率(bias有道翻译为乖离率),也就是垂直偏移率。

layout_constraintHorizontal_bias:水平乖离率(bias有道翻译为乖离率),也就是水平偏移率。

layout_constraintHeight_percent:高度百分比,占父类高度的百分比

layout_constraintWidth_percent:宽度百分比,占父类宽度的百分比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值