Jetpack Compose中TextField键盘Done按钮未正常显示问题求助
问题解决方法
你的问题根源很明确:自定义的EditNumberField组件里,内部TextField硬编码了固定的keyboardOptions,完全没用到外部传入的参数。不管你调用组件时传什么imeAction,最终都会被覆盖成ImeAction.Next,这就是第二个输入框始终显示Next按钮的原因。
修复代码
只需要把EditNumberField里TextField的keyboardOptions替换成传入的参数就行,顺便还能把之前没传递的modifier也补上(不然你调用时设置的padding、fillMaxWidth都不会生效):
@Composable fun EditNumberField( value: String, onValueChange: (String) -> Unit, @StringRes label: Int, keyboardOptions: KeyboardOptions, modifier: Modifier = Modifier, ) { TextField( value = value, onValueChange = onValueChange, modifier = modifier, label = { Text(stringResource(label)) }, singleLine = true, keyboardOptions = keyboardOptions, // 用传入的参数替代硬编码内容 ) }
修改完成后,第二个输入框设置的imeAction = ImeAction.Done就能正常生效,键盘右下角会显示Done按钮。
内容的提问来源于stack exchange,提问作者황서영
相关产品推荐
相关产品推荐

