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

调用OutlinedTextField遇到的问题

1、问题

使用OutlinedTextField的组件的时候发现问题:
①、OutlinedTextField 设置了最小高度,且contentPadding无法修改,最小高度过高,不符合UI设计,所以通过自定义的方式进行两个参数的问题。
②、使用OutlinedTextField时,发现设置Modifier参数不能使用heightIn设置高度的范围,当trailingIcon结尾图标不为null的时候,value值无法居中,所以通过计算高度的方式进行强制设置高度。

2、解决问题2的实现方式

① 获取每一行中text可见最大的宽度
② 计算输入框中具体值的宽度
③ 获取输入框中一行的高度
④通过计算具体值有多少行来设置OutlinedTextField的高度

3、代码实现:

3.1 计算具体值的文本宽度

/** * 计算文本宽度 */@ComposablefunMeasureTextWidth(text:String,textStyle:TextStyle=LocalTextStyle.current,onWidthMeasured:(Float)->Unit){valtextMeasurer=rememberTextMeasurer()valdensity=LocalDensity.current// 获取当前密度LaunchedEffect(text,textStyle){valtextLayoutResult=textMeasurer.measure(text=AnnotatedString(text),style=textStyle,constraints=Constraints(maxWidth=Int.MAX_VALUE))valwidthInPx=textLayoutResult.size.width.toFloat()valwidthInDp=with(density){widthInPx.toDp()}// 转换为dponWidthMeasured(widthInDp.value)// 返回dp值}}

3.2 获取自定义的宽度和高度,并计算需要的高度

outLineHeight 为OutlinedTextField的高度设置

valvalueWidth=dimensionResource(R.dimen.width_200).valuevalvalueHeight=dimensionResource(R.dimen.outlin_text_height).valuevarvalueIntbyremember{mutableStateOf(1)}if(bean.value.isNotBlank())MeasureTextWidth(text=bean.value,textStyle=textStyle,onWidthMeasured={valueInt=ceil(it/valueWidth).toInt()})valoutLineHeight=(valueHeight*valueInt).dp
http://www.jsqmd.com/news/111022/

相关文章:

  • 龙城宠医守护者联盟:2025年常州宠物健康卫士全解析 - 品牌企业推荐师(官方)
  • 鸿蒙6.0:生态质变与全场景智慧体验的全面跃升
  • 东铜箔公司实力推荐:新能源应用+技术创新(2025采购参考)华 - 品牌排行榜
  • vsftp 部署使用
  • 详细介绍:Python 编程实战 进阶与职业发展:Web 全栈(Django / FastAPI)
  • 【大前端】【iOS】iOS 真实项目可落地目录结构方案
  • 电气柜选型横评:防护、散热与成本如何平衡? - 品牌排行榜
  • Apache FreeMarker在线测试器终极指南:零基础快速上手模板引擎
  • 2025上海全包装修公司:一站式服务品质保证(防坑指南) - 品牌排行榜
  • 终极免费用户引导神器:Intro.js 快速上手完整指南
  • 快速上手MFRC522-python:5步实现树莓派RFID读卡功能
  • 跨平台书签同步终极指南:告别设备切换的烦恼
  • RestTemplate 封装 - RestUtils (1)
  • 天地图Python SDK终极指南:如何快速掌握地图切片下载与数据处理
  • 如何彻底解决Android截屏限制?Enable Screenshot终极解决方案指南
  • macOS存储空间不足?3步解锁远程存储新方案
  • macOS存储扩展深度解析:iSCSI远程存储技术实战指南
  • 2025无锡GEO优化指南:AI驱动的精准获客服务商优选 - 品牌推荐排行榜
  • Python背景移除终极指南:remove-bg完整使用教程
  • H3C MSR3620-DP系列路由器生产环境配置
  • 大语言模型~Ollama本地模型和java一起体验LLM
  • 恶臭异味检测仪:金叶仪器实现异味精准识别与数据化管理
  • 服务器技术参数怎么写
  • web渗透测试之CSRF实战案例,告知你如何玩转CSRF跨站脚本伪造攻击、短链接、以及结合XSS漏洞组合
  • 卷不动样本量?来抄作业:细菌基因组如何发顶刊?
  • 别花钱找中介,我留学生求职却靠它上岸了!
  • 关键操作:锁相环切换、逆变器控制模式切换
  • 一篇文章了解深拷贝和浅拷贝
  • ESP32音频革命:P3专有格式的终极指南与实战技巧
  • 前后端分离短流量数据分析与可视化abo系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程