ConstraintLayout 约束布局,减少布局的层级,优化渲染性能。

1、Circular positioning(圆形定位)
将一个控件的中心以一定的角度和距离约束到另一个控件的中心

 <View android:id="@+id/viewA" ... /><View android:id="@+id/viewB" ...//引用的控件IDapp:layout_constraintCircle="@+id/viewA"//圆半径app:layout_constraintCircleRadius="50dp"//偏移圆角度  水平右方向为0逆时针方向旋转app:layout_constraintCircleAngle="45" />

2、WRAP_CONTENT : enforcing constraints(强制约束)
控件的宽设置为 WRAP_CONTENT (包裹内容)时,如果实际宽度超过了约束的最大宽度,那么约束会失效。
为了防止约束失效,增加了以下属性:


app:layout_constrainedWidth=”true|false” //默认false
app:layout_constrainedHeight=”true|false” //默认false

约束条件

app:layout_constraintLeft_toRightOf="@+id/bt_1" //控件的左边位于xx控件的右边
app:layout_constraintRight_toRightOf="parent"   //控件的右边位于xx控件的右边

3、MATCH_CONSTRAINT dimensions(填充父窗体约束)

在约束布局中宽高的维度 match_parent 被 0dp 代替,默认生成的大小占所有的可用空间

layout_constraintWidth_min and layout_constraintHeight_min  //设置最小尺寸
layout_constraintWidth_max and layout_constraintHeight_max  //设置最大尺寸
layout_constraintWidth_percent and layout_constraintHeight_percent  //设置相对于父类的百分比

4、goneMargin(隐藏边距)
当约束目标的可见性为View.GONE时,还可以通过以下属性设置不同的边距值:

layout_goneMarginStart
layout_goneMarginEnd
layout_goneMarginLeft
layout_goneMarginTop
layout_goneMarginRight
layout_goneMarginBottom

5、约束之百分比布局
约束布局支持子控件设置宽高比,前提条件是至少需要将宽高中的一个设置为0dp。为了约束一个特定的边,基于另一个边的尺寸,可以预先附加W,或H以逗号隔开。

要求顶部的背景图宽高 16:9 来适配

app:layout_constraintDimensionRatio="H,16:9"

Chains(链)
链使我们能够对一组在水平或竖直方向互相关联的控件的属性进行统一管理。成为链的条件:一组控件它们通过一个双向的约束关系链接起来

      //默认样式app:layout_constraintHorizontal_chainStyle="spread"

Guideline

Guideline 与 LinearLayout 类似可以设置水平或垂直方向,android:orientation=“horizontal”,android:orientation=“vertical”,水平方向高度为0,垂直方向宽度为0。Guideline 具有以下的三种定位方式:

layout_constraintGuide_begin 距离父容器起始位置的距离(左侧或顶部)
layout_constraintGuide_end 距离父容器结束位置的距离(右侧或底部)
layout_constraintGuide_percent 距离父容器宽度或高度的百分比

Barrier

在约束布局中,可以使用属性constraint_referenced_ids属性来引用多个带约束的组件,从而将它们看作一个整体,Barrier 的介入可以完成很多其他布局不能完成的功能

 <android.support.constraint.Barrierandroid:id="@+id/barrier"android:layout_width="wrap_content"android:layout_height="wrap_content"app:barrierDirection="right"app:constraint_referenced_ids="tv_name,tv_contract"/>

barrierDirection 指定方向,constraint_referenced_ids引用的控件 id(多个id以逗号隔开)。

Group

Group用于控制多个控件的可见性。

来自简书 :https://www.jianshu.com/p/a74557359882

constantlayout布局相关推荐

  1. 点击改变div高度_css实现div两列布局(两种方法)

    一.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 二.思路 首先把这个问题分步解决,需要攻克以下两点: 1.让两个div并排到一行 2.让一个div宽度固定,另个div占 ...

  2. Android布局优化之include、merge、ViewStub

    include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...

  3. Laravel Dcat-admin 详情页多栏布局开发

    背景 随着 dcat-admin 越来越多的人使用,相信有许多跟我一样热爱这个项目的的人最后也会参与到这个项目中来,从使用者到项目的维护者,可以为项目贡献一份自己的力量.我以后也会将维护这个项目的一些 ...

  4. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  5. java gui 案例_JavaGui入门—布局的嵌套使用附实例

    JavaGui布局 常见布局 BorderLayout(边界布局) BorderLayout.EAST BorderLayout.WAST BorderLayout.NORTH BorderLayou ...

  6. HarmonyOS 使用DevEcoStudio创建一个xml布局以及引用布局

    文字描述创建 打开DevEco ,entry > src > main > resources > base",右键点击"layout"文件夹,选 ...

  7. HarmonyOS UI开发 AdaptiveBoxLayout(自适应盒子布局) 的使用

    AdaptiveBoxLayout 是什么 AdaptiveBoxLayout 是自适应盒子布局,该布局提供了在不同屏幕尺寸设备上的自适应布局能力,主要用于相同级别的多个组件需要在不同屏幕尺寸设备上自 ...

  8. HarmonyOS UI开发 TableLayout(表格布局) 的使用

    TableLayout 是什么 TableLayout  是表格布局,就是使用表格的方式划分子组件, 个人感觉应该也不是常用的布局,常用的还是选择DirectionalLayout和Dependent ...

  9. HarmonyOS UI开发 PositionLayout(位置布局) 的使用

    PositionLayout 是什么 PositionLayout 是位置布局,在PositionLayout中,子组件通过指定准确的x/y坐标值在屏幕上显示.(0, 0)为左上角:当向下或向右移动时 ...

最新文章

  1. 根据函数指针地址获取函数名
  2. 亚洲最大的元宇宙平台,体验在豪宅里开party
  3. mac 下安装jenkins
  4. 工业以太网交换机的三种转发方式
  5. docker占满linux磁盘根目录的解决办法
  6. 单层的神经网络使用自定义的损失函数
  7. (转)机会还是陷阱:诺亚财富的私募股权策略
  8. 用u盘刻录装服务器系统盘,光盘系统刻录到U盘上教程
  9. Tomcat部署及负载均衡_wuli大世界_新浪博客
  10. 存储洞察:从技术到市场
  11. redux中导入createStore中间有条线,解决方案及redux的使用。(react)
  12. 2021年遭遇苹果审核2.3.1的开发过审经历
  13. 买极米NEW Z8X的我后悔了,换成当贝F3 Air可真香
  14. 小新pro13睡眠后无法唤醒_小新air12、air13、air13pro睡眠后无法唤醒的调试方法
  15. 互联网的996与华为的惊世骇俗
  16. git android pdk,Android源码下载,Syncing work tree: error
  17. 机器视觉(七):图像分割
  18. 浪潮IPBS9505S短接线刷固件(附教程)
  19. **Multisim中如何测量时序**急!急!急!急!急!
  20. 【Other】最近在研究的, Java/Springboot/RPC/JPA等

热门文章

  1. 《火车头采集器采集网页数据》火车头配置规则采集信息文章数据。
  2. 预防猝死,8个心率监测方案随时监测的身体状况
  3. 阿里云视频点播Demo
  4. 关于阿里云视频点播出现的问题
  5. 阿里云“网红“运维工程师白金:做一个平凡的圆梦人
  6. aov()函数lm()函数区别,(I型、Ⅲ型平方和)
  7. 苹果xsmax怎么开机_苹果11和苹果XSMax怎么选?还以为差别不大,对比后才知道差别大了!...
  8. 惠普喷墨打印机卡纸了
  9. matlab 增量学习,支持向量机在线增量学习算法的MATLAB实现
  10. 发明计算机作文300字,关于科学发明的作文300字(共7篇)