Android 减少布局层次—— ConstraintLayout 约束布局 的使用

本文详细介绍了如何使用ConstraintLayout来减少Android应用的布局层次,提升性能。讲解了其特性,如相对定位、Margins、中心定位、角度定位、Visibility behavior、尺寸约束、链和Virtual Helper objects,并提供了具体示例,帮助开发者实现更简洁、灵活的布局设计。
摘要由CSDN通过智能技术生成

一. 背景

当前手机APP项目中,有些界面比较复杂,导致布局层次很深,View的数量也相当多,对性能产生了一定影响;复杂的布局,同时也增大了代码维护的难度。

ConstraintLayout 正是为了解决这个问题,它支持以下几类强大的特性:
- 相对定位

  • Margins

  • 中心定位

  • 角度定位

  • Visibility behavior

  • 尺寸约束

  • 链(Chains)

  • Virtual Helpers objects

在组合使用这些特性以后,我们可以达到明显降低布局层次的目的。

二. 可行性

  1. ConstraintLayout 是以一个单独的support library 的形式提供的,他支持API 9以上的版本。
  2. Android Studio 2.2以上的版本
  3. 支持将旧的布局文件一键替换为ConstraintLayout,工作量较小(不支持将已有的多个层级的布局直接转换为同一层级);
    支持将旧的布局文件一键替换为ConstraintLayout

三. 引入步骤

在module的build.gradle中插入:

dependencies {
    ...
    //引入ConstraintLayout
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    ...
}

目前最新版本为1.1.0-beta3

四. 特性详解

1. 相对定位

相对定位是ConstrainLayout中最为经常使用的一项属性,它支持
水平方向:

  • left
app:layout_constraintLeft_toLeftOf
app:layout_constraintLeft_toRightOf
  • right
app:layout_constraintRight_toLeftOf
app:layout_constraintRight_toRightOf
  • start
app:layout_constraintStart_toEndOf
app:layout_constraintStart_toStartOf
  • end
app:layout_constraintEnd_toStartOf
app:layout_constraintEnd_toEndOf

竖直方向:

  • top
app:layout_constraintTop_toTopOf
app:layout_constraintTop_toBottomOf
  • bottom
app:layout_constraintBottom_toTopOf
app:layout_constraintBottom_toBottomOf
  • text baseline
app:layout_constraintBaseline_toBaselineOf

ConstraintLayout支持的相对定位

这些属性都需要引用到另一个控件,或者parent(指代他们的父容器,也就是ConstraintLayout)

2. Margins

支持设置Margin(仅支持0或正数):

跟其它布局所不同的是,ConstraintLayout还支持链接到Visibility为Gone时的Margin:

  • layout_goneMarginLeft

  • layout_goneMarginRight

  • layout_goneMarginStart

  • layout_goneMarginEnd

  • layout_goneMarginTop

  • layout_goneMarginBottom

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值