Android ConstraintLayout

news2024/10/5 21:59:35

0dp 充满约束

to左侧是控件本身,to右边是约束条件

例如:

app:layout_constraintBottom_toBottomOf="@id/image_1"
app:layout_constraintTop_toBottomOf="@id/image_1"

 指定权重:

app:layout_constraintHorizontal_weight=""
app:layout_constraintVertical_weight=""

baseLine :基准线

app:layout_constraintBaseline_toBaselineOf="@id/image_1" 基准线对齐

以圆形为基准进行约束

app:layout_constraintCircle="@id/image_1" //控件
app:layout_constraintCircleAngle="200" //角度
app:layout_constraintCircleRadius="40dp" //距离

宽高约束:

app:layout_constrainedWidth="true" 宽度不超过相对的控件
app:layout_constrainedHeight="true"宽度不超过相对的控件

位移

app:layout_constraintVertical_bias="" 纵向位移0.0 -1.0
app:layout_constraintHorizontal_bias="" 横向位移0.0 -1.0

 当约束控件隐藏GONE时 设置间距 非GONE时不生效

app:layout_goneMarginStart="10dp"

约束链条空间

layout_constraintHorizontal_chainStyle 默认 spread

可以配合bias使用 设置方向位移

也可以使用weight 设置权重

layout_constraintHorizontal_weight
layout_constraintVertical_weight


宽高比

layout_constraintDimensionRatio="16:9" 设置宽高比 比如 16:9 但是宽和高至少有一个为0dp,也可以配合"W:1:1" 表示宽计算出来,分配高度,或者"H,2:1" 表示高度计算出需要分配宽度

下面这种也要设为宽or 高 为 0dp

然后设置宽高比

app:layout_constraintWidth_percent="0.5"
app:layout_constraintHeight_percent="0.5"

Guideline 基准线

<androidx.constraintlayout.widget.Guideline
    android:orientation="vertical"
    app:layout_constraintGuide_end="120dp" 结束位置
    app:layout_constraintGuide_begin="120dp" top left 间距
    app:layout_constraintGuide_percent="0.2" 间距20%
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

ConstraintHelper 约束空间辅助类

<androidx.constraintlayout.widget.Group
    app:constraint_referenced_ids="image_1,id2"/>

Group如果GONE或者VISIABLE ,则设置的ids也会对应显示或隐藏

然后可以再代码里设置动画等,比如 translationX,Y rotation等

Barrier  也是属于 ConstraintHelper

<androidx.constraintlayout.widget.Barrier
    app:barrierDirection="end"
    app:constraint_referenced_ids="image_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

可以设置ids,然后通过barrierDirection设置ids View的约束位置 比如 end ,start 等

动态设置动画:ConstraintHelper

然后设置一组View的ID

Placeholder 占位控件 动态替换控件

<androidx.constraintlayout.widget.Placeholder
    android:id="@+id/placeholder"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

设置ID

ConstraintSet:

通过创建Set 然后设置参数,最后apply保存

Flow:VirtualLayout : COnstraintHelper

<androidx.constraintlayout.helper.widget.Flow
    app:flow_wrapMode="aligned" //约束条件 设置展示方式
    app:flow_verticalGap="16dp" 垂直间距
    app:flow_horizontalGap="16dp" 水平间距
    android:orientation="vertical" 方向
    app:constraint_referenced_ids="image_1" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

通过设置ids

Clone:通过ConstraintSet 进行clone 别的布局的约束条件 然后替换为自身的

idForceId 如果克隆的View没有ID 则设置这个参数 否则报错

过渡动画:

TransitionManager.beginDelayedTransition(布局) 设置动画效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1182708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[云原生案例2.1 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】

文章目录 1. 常见的K8S安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署 2. Kubernetes单master集群架构 ---- &#xff08;二进制安装部署&#xff09;2.1 前置准备2.2 操作系统初始化2.3 部署 docker引擎 ---- &#xff08;所有 node 节点&#xff09;2.4 部署 etcd 集…

cygwin编译redis、nssm配置redis服务

一、总结 本文尝试了redis-7.2.1、redis-7.2、redis-7.0.12、redis-6.2.13&#xff0c;其中redis-7.0.12、redis-6.2.13下载下来后&#xff0c;没有修改redis项目的任何代码&#xff0c;直接在解压后的根目录下执行make命令就可以成功&#xff0c; 结果总结如下&#xff1a; r…

京东数据分析:2023年9月京东笔记本电脑行业品牌销售排行榜

鲸参谋监测的京东平台9月份笔记本电脑市场销售数据已出炉&#xff01; 9月份&#xff0c;笔记本电脑市场整体销售下滑。鲸参谋数据显示&#xff0c;今年9月份&#xff0c;京东平台上笔记本电脑的销量将近59万&#xff0c;环比下滑约21%&#xff0c;同比下滑约40%&#xff1b;销…

RTMP协议详解及Wiresahrk抓包分析

文章目录 前言一、RTMP 简介1、RTMP 介绍2、变种 二、wireshark 抓 RTMP 报文1、搭建 RTMP 服务器2、运行 RTMP 服务器3、打开 wireshark4、ffmpeg 推流5、VLC 拉流 三、RTMP 协议详解1、前言2、总体介绍3、握手4、RTMP Chunk Stream①、message&#xff08;消息&#xff09;②…

人工智能-卷积神经网络之多输入多输出通道

多输入多输出通道 每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。 但是到目前为止&#xff0c;我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通道时&#xff0c;我们的输…

Qt 项目实战 | 音乐播放器

Qt 项目实战 | 音乐播放器 Qt 项目实战 | 音乐播放器播放器整体架构创建播放器主界面 官方博客&#xff1a;https://www.yafeilinux.com/ Qt开源社区&#xff1a;https://www.qter.org/ 参考书&#xff1a;《Qt 及 Qt Quick 开发实战精解》 Qt 项目实战 | 音乐播放器 开发环…

揭开堆叠式自动编码器的强大功能

一、介绍 在不断发展的人工智能和机器学习领域&#xff0c;深度学习技术因其处理复杂和高维数据的能力而广受欢迎。在各种深度学习模型中&#xff0c;堆叠式自动编码器是一种多功能且功能强大的工具&#xff0c;可用于特征学习、降维和数据表示。本文探讨了堆叠式自动编码器在深…

UE5、CesiumForUnreal实现加载GeoJson绘制单面(Polygon)功能(StaticMesh方式)

文章目录 1.实现目标2.实现过程2.1 实现原理2.1.1 数据读取2.1.2 三角剖分2.1.3 创建StaticMesh2.2 应用测试2.2.1 具体代码2.2.2 蓝图应用测试3.参考资料1.实现目标 通过读取本地GeoJson数据,在UE中以StaticMeshComponent的形式绘制出面数据,支持Editor和Runtime环境,GIF动…

高压放大器能够在哪里使用呢

高压放大器是一种重要的电子设备&#xff0c;可以在许多不同的领域和应用中使用。下面西安安泰将详细介绍高压放大器的应用。 医学影像&#xff1a;高压放大器在医学影像领域具有广泛的应用。医学影像设备&#xff08;如X射线机、CT扫描仪等&#xff09;需要高压来产生足够的能…

通俗理解repartition和coalesce区别

官方的解释 reparation 返回一个具有恰好numPartitions分区的新RDD。 可以增加或减少此RDD中的并行级别。在内部,reparation会使用shuffle来重新分发的数据。 如果要减少此RDD中的分区数量,请考虑使用coalesce,这样可以避免执行shuffle。 coalesce 返回一个新的RDD,该RDD被…

nginx--install

1. ubuntu 1.1 下载并解压依赖 每个包去各自官网下载 stable 版就行。 tar xzvf nginx-1.24.0.tar.gz tar xzvf openssl-3.1.4.tar.gz tar xzvf pcre2-10.42.tar.gz tar xzvf zlib-1.3.tar.gz1.2 配置及安装 参数含义详见 nginx 官网 cd nginx-1.24.0./configure --pre…

11 抽象向量空间

抽象向量空间 向量是什么函数什么是线性推论向量空间 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 向量是什么 可以是一个箭头&#xff0c;可以是一组实数&#xff0c;即一个坐标对。 箭头在高维&#xff08;4维&#xff0c;甚至更高&#xff09;空间&…

免费音效素材,不能错过这6个网站

找免费音效素材&#xff0c;那必须要上这6个网站&#xff0c;热门音效、BGM都能免费下载&#xff0c;赶紧收藏起来。 1、菜鸟图库 https://www.sucai999.com/audio.html?vNTYwNDUx 菜鸟图库是一个综合性素材网站&#xff0c;站内涵盖设计、图片、办公、视频、音效等素材。其中…

【23真题】Easy!速成120两个月够了!

今天分享的是23年广西科技809的信号与系统试题及解析。 本套试卷难度分析&#xff1a;本套试题内容难度中等偏下&#xff0c;题量不大&#xff0c;考察的知识点很基础。所有的知识点都出现在它应该出现的地方&#xff0c;无任何偏难怪&#xff0c;非常常规的试卷&#xff01;个…

经典OJ题:链表中的倒数第K个节点

题目&#xff1a; 输入一个链表&#xff0c;输出该链表中倒数第k个结点。 题源&#xff1a;链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com) 方法一&#xff1a;暴力求解法 可以线统计链表的节点个数&#xff0c;然后用链表节点的个数减去K&#xff0c;得出倒数第K个节点…

【EI会议征稿】第四届智慧城市工程与公共交通国际学术会议(SCEPT 2024)

第四届智慧城市工程与公共交通国际学术会议&#xff08;SCEPT 2024&#xff09; 2024 4th International Conference on Smart City Engineering and Public Transportation 第四届智慧城市工程与公共交通国际学术会议&#xff08;SCEPT 2024&#xff09;将于2024年1月26-28日…

免交互(粗糙版)

免交互&#xff1a; 交互是&#xff1a;计算机播放器&#xff0c;需要放视频&#xff0c;我发出指令&#xff0c;计算机执行指令&#xff0c;做出相应的动作。比如说播放视频音频的动作 Linux系统中的交互是,例如&#xff1a;passwd 尤其在shell脚本中&#xff0c;我们的运行…

华为荣耀软开秋招面经问题整理

一、八股 1.linux常用命令 Linux常用命令&#xff08;面试题&#xff09;_linux常用命令面试题-CSDN博客 常用命令、系统命令、打包命令、vim、开关机命令 2.socket通信调用api过程 TCP UDP 二、算法 1.LeetCode——240 搜索二维矩阵II-CSDN博客 2.最长递增子序列的三种…

spring-clound基础开发

一、使用openfeig调用远程另外一个服务接口 1、创建一个spring boot工程,并且创建2个模块来当微服务模块 2、分别配置2个模块的启动文件 3、分别两个模块下创建一个测试的控制器 4、在项目的根目录的pom.xml中添加spring-cloud配置 <properties><java.version>1…

2023-11-7 OpenAI 45 分钟发布会:整理发布了哪些内容更新

本心、输入输出、结果 文章目录 2023-11-7 OpenAI 45 分钟发布会&#xff1a;整理发布了哪些内容更新前言发布 GPT-4 Turbo价格问题 推出 OpenAI 推出了「GPTs」六大升级上下文长度升级API 和函数调用控制手段增强模型内部和外部知识库的升级多模态模型微调与定制更高的使用频率…