Android 为特定的文本字段编写假键盘

Android Compose Faking Keyboard for specific textfields

我有一个屏幕,其中一些 textfields 我想显示一个 'fake' 键盘。键盘应该能够有我喜欢的任意多个按钮,并且可以按我想要的方式显示。如下图。

那么我的问题是你是如何完成这样的事情的?

是否有可能以某种方式覆盖键盘接口,以便您使用输入并可以显示'fake'键盘。然后在使用普通键盘的任何其他 textfield 上单击后退按钮时删除 'fake' 键盘。

或者我是否必须使用自定义回调创建自定义 @ComposableTextView,并手动呈现文本光标?

您可以实现自己的 TextInputService 或提供 null 以完全禁用默认输入服务:

CompositionLocalProvider(
  LocalTextInputService provides null // or myTextInputService 
) {
    TextField(
        value = text,
        onValueChange = { text = it },
    )
}

其中 myTextInputService 类似于:

TextInputService(object : PlatformTextInputService {
    //TODO implement methods
}