当前位置: 首页 > news >正文

android compose contraintlayout 使用 bias

在 Jetpack Compose 的 ConstraintLayout 中,确实可以通过在 linkTo 方法中使用 horizontalBiasverticalBias 参数来控制组件在水平和垂直方向上的偏移位置。以下是一个使用 bias 的具体示例,并展示了如何通过 Dimension.fillToConstraints 实现类似于 app:layout_constrainedWidth="true" 的效果:

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.constraintlayout.compose.ConstraintLayout
import androidx.constraintlayout.compose.Dimension@Composable
fun BiasAndConstraintExample() {ConstraintLayout(modifier = Modifier.fillMaxWidth().height(200.dp).background(Color.LightGray)) {val (tvTitle, ivIcon, tvSubtitle) = createRefs()// 示例图标(占位)Box(modifier = Modifier.size(50.dp).background(Color.Blue).constrainAs(ivIcon) {start.linkTo(parent.start, margin = 16.dp)top.linkTo(parent.top)})// 示例标题文本Text(text = "Title Text",fontSize = 16.sp,modifier = Modifier.constrainAs(tvTitle) {linkTo(start = ivIcon.end,top = parent.top,end = parent.end,bottom = tvSubtitle.top,horizontalBias = 0f // 水平偏移,0f 表示靠左)width = Dimension.fillToConstraints // 实现强约束宽度}.padding(8.dp).background(Color.White))// 示例子标题文本(占位)Text(text = "Subtitle Text",fontSize = 12.sp,modifier = Modifier.constrainAs(tvSubtitle) {start.linkTo(ivIcon.end)top.linkTo(tvTitle.bottom)})}
}@Preview(showBackground = true)
@Composable
fun BiasAndConstraintExamplePreview() {BiasAndConstraintExample()
}

关键点解释:

  1. horizontalBiasverticalBias: 用于控制组件在水平方向和垂直方向上的偏移位置。例如,horizontalBias = 0f 表示组件靠左对齐,horizontalBias = 1f 表示组件靠右对齐。

  2. Dimension.fillToConstraints: 这个属性让组件的宽度根据它的左右约束自动调整,并且受限于这些约束,实现类似 app:layout_constrainedWidth="true" 的效果。

  3. 布局约束设置:

    • linkTo(start = ivIcon.end, top = parent.top, end = parent.end, bottom = tvSubtitle.top): 定义 tvTitle 的位置约束。
    • horizontalBias = 0f: 将 tvTitle 水平靠左对齐。

这种写法让你能够精确控制组件在 ConstraintLayout 中的位置,并且确保其宽度在一定范围内可调整。

---- 文章由 ChatGPT 生成

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 初识C++ · C++11(1)
  • 代码随想录——判断子序列(Leetcode 392)
  • 立仪科技光谱共焦应用之金属隔膜静态重复性测量
  • 化工材料分析丨结构分析丨配方分析丨元素分析
  • 第一百八十八节 Java XML教程 - Java StAX
  • 前端 package.json 的每一项作用
  • 初始化列表的基本介绍
  • 数学建模~~追逐仿真问题
  • 无人机培训机构推广运营理论技术
  • Python中各类常用内置转换函数
  • uniapp免费申请苹果证书教程每次7天可用于测试
  • Redis,MongoDB,Memcached未授权访问漏洞(及其修复方法)
  • NOI Linux 2.0 的安装说明以及使用指南
  • 使用 podman 推送数据到私有仓库的 3 个问题记录
  • 【知识】PyTorch中的数据类型dtype
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 2019年如何成为全栈工程师?
  • Apache Zeppelin在Apache Trafodion上的可视化
  • ECS应用管理最佳实践
  • Electron入门介绍
  • JAVA 学习IO流
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • java小心机(3)| 浅析finalize()
  • Rancher-k8s加速安装文档
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 阿里云前端周刊 - 第 26 期
  • 不上全站https的网站你们就等着被恶心死吧
  • 回流、重绘及其优化
  • 使用putty远程连接linux
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云ACE认证学习知识点梳理
  • #每天一道面试题# 什么是MySQL的回表查询
  • (13)Hive调优——动态分区导致的小文件问题
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (数据结构)顺序表的定义
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)EOS中账户、钱包和密钥的关系
  • ***原理与防范
  • ./和../以及/和~之间的区别
  • .libPaths()设置包加载目录
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net6 Api Swagger配置
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • [20190113]四校联考
  • [Android]Android开发入门之HelloWorld
  • [C#] 如何调用Python脚本程序
  • [C++]: std::move
  • [CTO札记]盛大文学公司名称对联
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [GYCTF2020]Ez_Express
  • [HackMyVM]靶场 Quick3