布局-ConstrainLayout

2023-11-17

Relative positioning 相对位置

layout_constraintLeft_toLeftOf  将所需视图的左边与另一个视图的左边对齐

layout_constraintLeft_toRightOf 将所需视图的左边与另一个视图的右边对齐

layout_constraintRight_toLeftOf 将所需视图的右边与另一个视图的左边对齐

layout_constraintRight_toRightOf 将所需视图的右边与另一个视图的右边对齐

layout_constraintTop_toTopOf  将所需视图的顶部与另一个视图的顶部对齐

layout_constraintTop_toBottomOf 将所需视图的顶部与另一个视图的底部对齐

layout_constraintBottom_toTopOf 将所需视图的底部与另一个视图的顶部对齐

layout_constraintBottom_toBottomOf 将所需视图的底部与另一个视图的底部对齐

layout_constraintBaseline_toBaselineOf 基线约束控键,该控键帮助你对齐任意两个widget的文字部分,与widget的大小无关。例如你有两个不同尺寸的widget但是你想要他们的文字部分对齐

layout_constraintStart_toEndOf 在指定View的右边,建议使用start,end,关键在于适配从RTL模式的文字展示,作用同left,right

layout_constraintStart_toStartOf  和指定view左对齐

layout_constraintEnd_toStartOf 视图右边和指定视图左边对齐

layout_constraintEnd_toEndOf 视图右边和指定视图右边对齐

Margins 边框

android:layout_marginStart 本元素离开始的位置的距离 在指定View的右边,建议使用start,end,关键在于适配从RTL模式的文字展示,作用同left,right

android:layout_marginEnd  本元素离结束位置的距离

android:layout_marginLeft  本元素离开始的位置的距离

android:layout_marginTop 本元素离顶部的位置的距离

android:layout_marginRight 本元素离结束的位置的距离

android:layout_marginBottom 本元素离底部的位置的距离

Centering positioning

主要使用比例的方式来确定控件的相对位置,app:layout_constraintHorizontal_bias 和 app:layout_constraintVertical_bias默认都是百分之五十,即都是水平或者垂直方向居中,下面的例子实现的效果是水平方向比较靠左,百分之30的偏移量,垂直方向比较靠上,百分之40的偏移量。


Circular positioning

圆形定位,可以约束一个组件中心到另外一个组件中心的的角度和距离,允许你在一个圆上定位组件

layout_constraintCircle : 其他组件id

layout_constraintCircleRadius : 到其他组件中心的半径距离

layout_constraintCircleAngle : 想对于其他组件的角度(0到360)


Visibility behavior

 View.GONE 和View.VISIBLE实现了控件的隐藏和展示效果

Dimension constraints

尺寸约束。可以定义最大和最小约束

android:minWidth 设置最小宽度

android:minHeight 设置最小高度

android:maxWidth 设置最大宽度

android:maxHeight 设置最大高度

android:layout_width 设置组件宽度

android:layout_height 设置组件高度

WRAP_CONTENT 组件会自己计算其大小

如果width和height都设置为0,那么会等同于MATCH_CONSTRAINT

Important: MATCH_PARENT is not recommended for widgets contained in a ConstraintLayout. Similar behavior can be defined by using MATCH_CONSTRAINT with the corresponding left/right or top/bottom constraints being set to "parent".

MATCH_PARENT不推荐在constraintlayout中使用,可以使用相对于parent左右/上下 约束来布局

Enforcing constraints 强制布局

在 1.1 版本之前,如果将控件的尺寸设置为wrap_content,那么对控件设置高度和宽度约束是不起作用的,而强制约束就用于使控件在设置wrap_content的情况下约束依然生效

app:layout_constrainedHeight="true | false"

app:layout_constrainedWidth="true | false"

如果声明了以上两个属性都是true,那么就会使得如下对应的几组约束生效,从而达到对warp_content类型的内容进行宽和高的修改

layout_constraintWidth_min 设置最新宽度

layout_constraintHeight_min 设置最小高度

layout_constraintWidth_max 设置最大宽度

layout_constraintHeight_max 设置最大高度

layout_constraintWidth_percent 设置相对于parent的宽度比例 (取值范围0~1)

layout_constraintHeight_percent 设置相对于parent的高度比例 (取值范围0~1)



上面没有添加强制约束,可以看到即便是使用了constrainHeightMin和constrainWidthMax也是没有作用的。修改为以下方式后就可以了。


Ratio

你也可以定义一个组件的某个尺寸,作为另一个尺寸的比例值。为了达到这个效果,你必须设置至少一个尺寸值为0dp然后使用layout_constraintDimensionRatio来设置比例。通常用于组件的宽和高设置。比如:

<Button android:layout_width="wrap_content"

                  android:layout_height="0dp"

                  app:layout_constraintDimensionRatio="1:1" />

会将button的高度设置为和宽度一样。同时,宽度和高度可以同时都设置为0dp,然后通过这个属性来设置宽度和高度。可以通过添加"W"或者"H"前缀来设置宽高比。比如:

<Button android:layout_width="0dp"

                  android:layout_height="0dp"

                  app:layout_constraintDimensionRatio="H,16:9"

                  app:layout_constraintBottom_toBottomOf="parent"

                  app:layout_constraintTop_toTopOf="parent"/>

这个就设置了button的高度为16比9

Chains

链可以提供为单一坐标轴(水平或者垂直)组形式的操作。另外一个坐标轴的约束是独立的。

创建链

Android chain是首个运用区块链技术底层,所构建的一个机器人自治矩阵系统。打造一条服务于全球人工智能行业的去中心化和点对点交易生态,创建一个服务于全球的人工智能群链,应用于智能机器人领域,致力于推动人工智能经济和其产业链的发展。  Android chain所针对的机器人是属于智能级的服务型机器人,每一个机器人都可以作为一个单独的节点运作,整套系统秉承“分布式”的原理来进行构架。每一个机器人其实都是其所服务主体数据的存储点,也是数据的价值承载,它们天然具有上传数据,下载数据,管理数据和分析数据的功能和优势,并且和传统的计算机相比较,它们对于区块链的应用落地更具有优势,所有链的价值能够被更为直接和便捷地转换为机器与人,机器与机器之间的功能交互。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

布局-ConstrainLayout 的相关文章

  • 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)

    题目 0 1 2 n 1这n个数字排成一个圆圈 从数字0开始 每次从这圆圈你删除第m个数字 求出这个圆圈里剩下的最后一个数字 例如 0 1 2 3 4这5个数字组成一个圆圈 从数字0开始每次删除第3个数字 则删除的前4个数字依次2 0 4
  • 踩了大坑:https 证书访问错乱

    文章目录 一 问题排查及解决 问题一 证书加载错乱 问题二 DNS 解析污染问题 问题三 浏览器校验问题 二 终极解决方法 2 1 可外网访问域名 2 2 只能内网访问域名 2 3 内网自动化配置 2 4 错误解决 一 问题排查及解决 今天
  • 用SpringBoot开发工商银行平台公众号及小程序埋名聚合支付(微信小程序支付)

    因为项目需求的原因 需要开发小程序支付 采取的支付流程是用工商银行 以下简称工行 的埋名聚合支付 接口 进行小程序支付开发 工行 开发指南业务申请 https open icbc com cn icbc apip docs intro ht
  • 阿里云配置MINIO图床

    阿里云 ECS服务器 CENTOS7系统部署MINIO图床 1 下载MINIO的二进制文件 注 阿里云ECS网速过慢 但可以接受 wget https dl minio io server minio release linux amd64
  • AES加密,128-192-256,方案一

    AES加密 直接粘贴代码 异常什么的自己要处理 做个总结记录 package com xiao aes util import java io UnsupportedEncodingException import java securit
  • jmeter压测报错socket closed解决方法

    socket closed 问题原因 在JMeter下 发送http 请求时 一般都是默认选择了use keepAlive 这个是连接协议 JMeter坑就在这里 默认勾选了这个 如果不勾选的话 也不会保存 但其配置JMeter prope
  • 6个Python代码简化方法

    ython开发代码简化除了采用规范化的编程规则之外 代码编写的逻辑性和对内置规则的掌握也对其有一定的影响 以下是Python3支持的用法 合理的利用可以极大的简化代码的书写复杂度 列表推导式 对于一组列表 如果想让其所有元素翻倍 很多人都会
  • A notion of time

    1 simulation kernel用sc time数据类型来跟踪仿真时间 指定delay和timeouts sc time是用一个64bit的无符号整型数来表示 SC SEC seconds 10 0 秒 SC MS milliseco
  • 接口测试:postman发送POST请求

    Postman发送POST请求 postman发送POST请求 示例 微信公众平台创建用户标签接口 业务操作如下 1 打开微信公众平台 微信扫码登录 2 打开微信开放文档 找到用户管理 用户标签管理的接口信息 3 打开postman 新建一
  • 谷歌Chrome浏览器安装插件Hackerbar

    谷歌Chrome浏览器安装插件Hackerbar 因为google浏览器的应用市场 https chrome google com webstore category extensions 在国内无法访问 所以无法在线安装插件 这里提供开发
  • 刷脸和无感支付是社会科学发展的产物和动力

    手机支付不应该多过 而且有自动与支付余额联机 刷手机才是赚钱的出路 对比来看 手机支付操作简单但基础好 有相当多用户加入的话 就没有任何风险了 自动与支付余额联机有效 而对于支付余额联机更有效 但比安全性较低 不利于用户操作 而对于与银行合
  • python打包whl文件

    应用场景 在python的使用过程中 当遇到通过pip无法安装包 可以通过去Python安装包大全中 whl包下载 下载 whl 包来安装解决问题 也可以在别处打包成 whl 文件 拷贝过来运行 介绍 whl 文件是以 wheel 格式保存
  • PySerial:Python串口通信库的详细介绍、安装及使用方法攻略

    PySerial Python串口通信库的详细介绍 安装及使用方法攻略 一 PySerial 简介 PySerial 是 Python 的一个串口通信库 支持不同平台下的串口操作 在 Python 应用中 使用 PySerial 可以非常方
  • 《Programming in Lua 3》读书笔记(七)

    Compilation Executioin and Errors Lua的assert函数 assert v mess 相当于C的断言 当v为nil或者false将触发错误 mess为发生错误时返回的信息 dofile函数不仅会加载chu
  • 蓝桥杯中的阶乘(求1000的阶乘)

    首先这个题 它是求1000的阶乘 他最后的值太大了 以至于不能用int long long int 来求 那要怎求呢 那肯定是用最简单的数组来求鸭 用数组来代表它的每一个位 include
  • 如何判断链表有环

    如何判断单链表是否存在环 有一个单向链表 链表当中有可能出现 环 就像题图这样 如何用程序判断出这个链表是有环链表 不允许修改链表结构 时间复杂度O n 空间复杂度O 1 方法一 穷举遍历 方法一 首先从头节点开始 依次遍历单链表的每一个节
  • 网关模式/网桥模式/旁路模式的区别

    网关模式 网桥模式 旁路模式的区别如下 EG设备有三种工作模式 网关模式 网桥模式和旁路模式 比较常用的是网关模式和桥模 式 1 网关模式是把设备当作网络出口 支持NAT和路由选路下报文转发的部署方式 2 桥模式是把设备作为桥接 串接在内网
  • 【SqlServer】如何把本地SqlServer数据库部署到远程服务器上

    这里笔者使用的使用SqlServer2012 本机和远程环境均为Win7 1 选中需要部署的数据库 右击 任务 分离 选中删除连接 2 现在在左侧的表中就看不见刚才那个数据了 3 在本地找到分离出来的数据库的位置 该位置就是读者建立数据库的
  • 厌烦了Ctrl+CV ?试试用node自动生成重复代码文件

    前言 相信在我们日常遇到的项目中 无论是在前端网站还是后台管理系统中都会有功能类似的页面 我们在开发这些功能类似的页面的时候 为了提高效率 一般都会运用我们的CV大法 但是当我们CV久了之后 会不会觉得这样的开发方式有些许枯燥 我们能不能通
  • 孙子算经 之 物不知数(韩信点兵)

    孙子算经 作者不可考 成书于四 五世纪南北朝时期 传本分三卷 它是算经十书之一 中国古代最重要的数学著作之一 其下卷26题 物不知数 为其最重要的成就之一 今有物 不知其数 三三数之 剩二 五五数之 剩三 七七数之 剩二 问 物几 何 答曰

随机推荐

  • 解决下载文件时报:Could not find acceptable representation

    今天在写一个文件打包下载的接口的时候一直报错误 文件是可以下载的但是后台打印的日志信息出现 Could not find acceptable representation错误 我之前百度给我的结果是由于我的返回值是json字符串 而由于
  • STM32F1各个工作状态下的工作电流

    低功耗操作实验 文章非原创 从其他网站上摘录 如果侵犯到到 麻烦联系删除 实验目的 测量 STM32 在各种状态下的功耗 包括在不同时钟频率下 32M 8M 1M 100K 10K 不同振荡器 内部 外部 不同模式 活动 睡眠 停机 待机
  • 经纬度查询_查询经纬度并自动转换格式(升级版)附带下载

    链接 https pan baidu com s 1Ysjwdu9griOXzw50RvfF1A 提取码 iwvv 链接 https share weiyun com 8ECyYM8g 密码 bwqmk8 1 史上最齐全的CAD下载资源 2
  • 二进制方式部署kubernetes集群

    二进制方式部署kubernetes集群 1 部署k8s常见的几种方式 1 1 kubeadm Kubeadm 是一个 k8s 部署工具 提供 kubeadm init 和 kubeadm join 用于快速部署 Kubernetes 集群
  • [python]多线程socket端口探测(包含top50-1000)

    这个脚本是基于tcp的 以下链接是基于tcp udp的自动切换的脚本 比这个脚本方便多了 实现UDP TCP的多线程端口探测 包含TOP 50 1000 sGanYu的博客 CSDN博客 多线程扫描工具 import optparse im
  • 数学建模常用的四大模型

    目录 1 评价模型 2 优化模型 3 分类模型 4 预测模型 本文主要介绍数学建模的四大模型分类 分别是评价模型 优化模型 分类模型 预测模型 关注公众号 数模乐园 回复 买 获得更多数模教程 1 评价模型 评价模型可以处理难于完全定量分析
  • ftp服务器查看所有文件夹,查看ftp服务器所有文件夹

    查看ftp服务器所有文件夹 内容精选 换一换 对于本文档的应用示例 查看 HOME tools projects Custom Engine main cpp中所需输入数据如下所示 ASIC场景 以root用户登录Host侧服务器 在 ho
  • R大数定律(Python切比雪夫不等式验证大数定律)模拟圆周率

    大数定律 在概率论中 大数定律 LLN 是描述大量执行相同实验的结果的定理 根据规律 大量试验所得结果的平均值应接近预期值 并随着试验次数的增加而趋于接近预期值 LLN 很重要 因为它保证了一些随机事件的平均值的长期稳定结果 例如 虽然赌场
  • 【Hive】Hive分区表

    分区作为一种提高数据操作灵活性的手段 被广泛应用于关系型数据库中 在Hive中我们同样可以采用分区的方式来提高数据操作效率 不同于关系型数据库 如Oracle Hive的分区表既可以是内部表 也可以是外部表 本篇文章主要介绍如何在Hive中
  • ValueError:optimizer got an empty parameter list 的一个可能错误

    ValueError optimizer got an empty parameter list基本都跟 init 及其里面的代码有关 比如下划线打错了 init拼错了 没有super 没在 init 函数内定义网络等 本次具体如下 今天有
  • 计数排序基础思路

    所谓计数排序 也可以称为散列表 也是一种简单的哈希桶 今天 小编带大家来了解计数排序的基本思路 一 基本思路 以升序为例 计数排序通俗来讲 分为三个步骤 首先制作包含所有要排序的数的桶 相同的数制作一个桶即可 以2 3 6 1 4 1 2
  • eclipse如何配置Maven

    Maven 翻译为 专家 内行 是 Apache 下的一个纯 Java 开发的开源项目 基于项目对象模型 缩写 POM 概念 Maven利用一个中央信息片断能管理一个项目的构建 报告和文档等步骤 Maven 是一个项目管理工具 可以对 Ja
  • C++:unique_ptr

    Code C program to illustrate the use of unique ptr include
  • Go_一文入门网络编程:常见协议、通信过程、Socket、CS/BS、TCP/UDP

    网络编程三要素 ip地址 端口 协议 在网络通信协议下 不同计算机上运行的程序 可以进行数据传输 IP地址 IP地址是一种在互联网协议中用于识别和定位设备的32位或128位数字地址 它是一个设备在网络上的唯一标识符 用于在互联网上定位和识别
  • 【房价网房价信息爬虫】整站40万条房价数据并行抓取,可更换抓取城市

    写在前面 学习数据采集 先转载下来 之后在学习 这次的爬虫是关于房价信息的抓取 目的在于练习10万以上的数据处理及整站式抓取 数据量的提升最直观的感觉便是对函数逻辑要求的提高 针对Python的特性 谨慎的选择数据结构 以往小数据量的抓取
  • git fetch merge rebase squash

    合并分类 在合并分支的时候 默认是有三种选项的 分别是 普通的 merge squash merge rebase merge 区分 merge 和 rebase 更多参考GIT使用rebase和merge的正确姿势 准备 假设我们有如下图
  • Java异常 (throwable)

    异常主要是error和exception两种 throwable的两个子类 1 Error类及其子类 代表的是Error类及其子类 代表的是jvm本身的错误 错误不能被程序通过代码处理 2 Exception类及其子类 一般都是程序写错了
  • 韦东山和正点原子IMX6ULL开发版的区别

    网卡驱动复位引脚硬件区别 网卡 复位脚 厂家 io 网卡0 SNVS TAMPER9 100ask gpio5 IO9 网卡1 SNVS TAMPER6 100ask gpio5 IO6 网卡0 SNVS TAMPER7 正点原子 gpio
  • 平头哥(T-Head )开源RISCV处理器OpenC906 RTL仿真

    在过去的几年里 阿里集团平头哥陆续推出了几款RISCV处理器 有些处理器已经在产业界得到了应用 比如在某志的D1处理器中 就嵌入了平头哥的玄铁C906内核为 芯 RISCV虽然是一个开放标准 并且网络上也不乏一些开源核的RTL实现 但是商用
  • 布局-ConstrainLayout

    Relative positioning 相对位置 layout constraintLeft toLeftOf 将所需视图的左边与另一个视图的左边对齐 layout constraintLeft toRightOf 将所需视图的左边与另一