You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose BasicTextField点击占位符无法获取焦点求助

解决Jetpack Compose BasicTextField占位符点击无法获焦的问题

这不是Compose的Bug,默认的Text组件只是静态文本,不会自动把点击事件关联到文本框的焦点请求逻辑。你可以通过以下方式解决:

  • 用FocusRequester手动绑定点击事件
    先创建FocusRequester实例并关联到BasicTextField,再给占位符的Text添加clickable修饰符,点击时主动请求焦点:
val focusRequester = remember { FocusRequester() }

BasicTextField(
    value = "",
    onValueChange = { input -> },
    modifier = Modifier.focusRequester(focusRequester)
) { innerTextField ->
    TextFieldDecorationBox(
        value = "",
        innerTextField = innerTextField,
        placeholder = {
            Text(
                text = "place holder",
                modifier = Modifier.clickable {
                    focusRequester.requestFocus()
                }
            )
        },
    )
}

这样点击占位符文本时,就会触发文本框获取焦点,和点击文本框其他区域的效果一致。

内容的提问来源于stack exchange,提问作者mooongcle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:19:58