如何在不依赖XML的Android Jetpack Compose中触发隐身键盘?
在Jetpack Compose中触发GBoard隐身模式的正确方式
要在Compose中让GBoard进入隐身模式,不能直接通过字符串形式传入flagNoPersonalizedLearning,需要通过ImeOptions的flags参数传入系统对应的常量值,具体步骤如下:
- 导入系统输入法常量类:
import android.view.inputmethod.EditorInfo
- 在
OutlinedTextField(或其他Compose输入组件)的keyboardOptions中,通过ImeOptions的flags参数设置EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING:
OutlinedTextField( value = yourTextState.value, onValueChange = { yourTextState.value = it }, label = { Text("示例输入框") }, keyboardOptions = KeyboardOptions( imeOptions = ImeOptions( flags = EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING ) ) )
为什么之前的方法无效?
Compose中ImeOptions的字符串构造函数是用于指定IME动作(如actionDone、actionNext),并非设置输入法行为标识。只有通过flags参数传入对应Int类型的系统常量,才能正确触发GBoard的隐身模式。
注意:该标识仅对支持它的输入法生效,GBoard会遵循此设置,但部分其他输入法可能不支持。
内容的提问来源于stack exchange,提问作者Azula
相关产品推荐
相关产品推荐

