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
相关产品推荐
相关产品推荐

