news 2026/6/26 0:47:44

调用OutlinedTextField遇到的问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
调用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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 20:40:55

SHP文件GCJ02转WGS84坐标系系统源码

技术文章大纲:SHP文件GCJ02转WGS84坐标系系统源码解析 引言 坐标系转换的背景与意义 GCJ02与WGS84坐标系的区别与应用场景 地理数据处理中的常见需求 系统架构设计 整体功能模块划分 核心依赖库说明(geopandas、shapely等) 批处理与单文件处理模式设计 核心算法实现 坐标转…

作者头像 李华
网站建设 2026/6/24 20:41:53

ComfyUI智能字幕生成终极指南:3步实现AI自动化图片标注

ComfyUI智能字幕生成终极指南:3步实现AI自动化图片标注 【免费下载链接】ComfyUI_SLK_joy_caption_two ComfyUI Node 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_SLK_joy_caption_two 在AI内容创作时代,如何高效为大量图片生成精准字幕…

作者头像 李华
网站建设 2026/6/24 21:48:30

2025亚马逊运营升级:从短期竞争,转向品牌资产长效经营

亚马逊的黄金窗口正在收窄。过去依靠铺货和简单优化就能增长的“机会驱动”时代,已经让位于一个要求系统性专业能力的“运营驱动”新阶段,流量成本持续攀升,平台规则日益精密,消费者决策也更加审慎,在这个成熟周期中&a…

作者头像 李华
网站建设 2026/6/24 22:55:44

【大前端】【iOS】iOS 真实项目可落地目录结构方案

一套 iOS 真实项目可落地目录结构方案,包含 模块拆分、命名规范、协作约束、演进路线。 目标: ✅ 新人 1 天能上手 ✅ 3–10 人并行开发不冲突 ✅ 支持后期组件化 / Swift Package 一、真实项目推荐总目录(MVVM 模块化) MyApp ├…

作者头像 李华