AndroidViewFactory无法在JetpackCompose中正确检测TextView的高度。
创始人
2024-08-22 00:30:15
0

可以通过使用 Android View 的 Measuring API 来解决此问题。具体来说,创建一个自定义 View,重写其 onMeasure 方法,并在其中对 TextView 进行测量。以下是一个示例代码:

@Composable
fun CustomTextView(text: String) {
    AndroidView(factory = { context ->
        TextView(context)
    }) { textView ->
        textView.text = text
    }

    val textViewMeasurer = remember {
        object : View.MeasureSpec {
            override fun  get(spec: T): Int {
                return when (spec) {
                    MeasureSpecHeight -> textView.measuredHeight // 获取测量过的高度
                    else -> error("Unsupported measure spec")
                }
            }
        }
    }

    onCommit(text) {
        textViewMeasurer.measure(
            MeasureScope(
                constraints = Constraints.unspecified(),
                forceMinWidth = 0
            )
        ) {
            LayoutNode(0, 0, IncomingConstraints.WidthAtMost(0)) {
                // 测量 TextView 的高度
                CustomLayoutNode(textView.measuredWidth, textView.measuredHeight)
            }
        }
    }
}

在 Compose 中使用这个自定义 View,就能够正确地测量 TextView 的高度了。

相关内容

热门资讯

十分钟开挂!新久久辅助器,菜鸟... 十分钟开挂!新久久辅助器,菜鸟黑桃a3辅助,必胜教程-2026最新版本1、起透看视 菜鸟黑桃a3辅助...
近日!广西友乐软件辅助(辅助挂... 近日!广西友乐软件辅助(辅助挂)一直有挂(有挂法门)-哔哩哔哩 >>您好:软件加薇136704302...
第1分钟开挂!微乐小程序游戏破... 第1分钟开挂!微乐小程序游戏破解器,掌中乐游戏辅助器,透牌教程-2026最新版本1、微乐小程序游戏破...
此事备受玩家关注!乐乐围棋入门... 此事备受玩家关注!乐乐围棋入门脚本(辅助挂)原来有挂(有挂秘籍)-哔哩哔哩《详细加薇13670430...
9分钟开挂!安卓手机闲逸辅助器... 9分钟开挂!安卓手机闲逸辅助器,微信小程序开心泉州辅助器,可靠教程-2026最新版本;小薇(透视辅助...
针对!逸趣鄱阳翻精辅助(辅助挂... 【亲,逸趣鄱阳翻精辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款逸趣鄱阳翻精辅助中打牌都会发...
第9分钟开挂!微信超级三加一辅... 第9分钟开挂!微信超级三加一辅助,逸趣鄱阳翻精辅助,技巧教程-2026最新版本1、不需要AI权限,帮...
推出新举措!新天道辅助(辅助挂... >>您好:新天道辅助确实是有挂的,很多玩家在这款新天道辅助游戏中打牌都会发现很多用户的牌特别好,总是...
第8分钟开挂!来趣广西友玩桂,... 第8分钟开挂!来趣广西友玩桂,情怀打七辅助,黑科技教程-2026最新版本一、来趣广西友玩桂软件透明挂...
连日来!聚友联盟(辅助挂)原来... 连日来!聚友联盟(辅助挂)原来有挂(有挂大纲)-哔哩哔哩 【无需打开直接搜索加薇136704302咨...