Compose Text fontSize 字体大小 AutoSize 超过一行后自动变小 永远保持一行

本文介绍了一种在UI设计中实现文本自动调整大小的技术方案。通过使用特定的TextStyle配置和响应式编程,使得文本能够在不溢出指定宽度的前提下自动缩小字体大小,确保了良好的视觉效果和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      val textStyleBody1 = TextStyle(
                                color = HaiveColor_Main,
                                fontSize = 18.sp,
                                fontWeight = FontWeight.SemiBold
                            )
                            //文本自动缩小
                            var textStyle1 by remember { mutableStateOf(textStyleBody1) }
                            var readyToDraw1 by remember { mutableStateOf(false) }

                            val textStyleBody2 = TextStyle(
                                color = HaiveColor_Main,
                                fontSize = 18.sp,
                                fontWeight = FontWeight.SemiBold
                            )
Text(
                                        text = "${mMonthPrice}/${stringResource(id = R.string.pop_vip_label_mo)}",
                                        color= HaiveColor_White,
                                        textStyle = textStyle1,
                                        modifier = Modifier.drawWithContent {
                                            if (readyToDraw1) drawContent()
                                        },
                                        //自动变小
                                        onTextLayout = { textLayoutResult ->

                                            if (textLayoutResult.didOverflowWidth) {
                                                textStyle1 =
                                                    textStyle1.copy(fontSize = textStyle1.fontSize * 0.9)
                                            } else {
                                                readyToDraw1 = true
                                            }
                                        },


                                        )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值