go x/mobile:预测键盘的按键事件未触发

l5tcr1uw  于 6个月前  发布在  Go
关注(0)|答案(4)|浏览(50)

在三星Galaxy S10上,运行Android 10(这在Android 9中不是键盘的问题)时,当(默认)预测文本打开时,按键事件不再触发。
一些其他应用程序,如Termux( termux/termux-app#686 )报告说,单词出现在空格/回车等之后-然而,gomobile并不是这样。每次应该显示一个“未知键码”事件时,都会触发一个字符。

您正在使用的Go版本是什么( go version )?

1.12, 1.13, 1.14

这个问题在最新版本的发布中是否会重现?

是的

您正在使用什么操作系统和处理器架构( go env )?

我认为Android手机上的环境最相关,但我不知道要提供什么。
旧键盘上的代码运行正常,或者如果您关闭预测文本

您做了什么?

  • 在Galaxy S10上运行带有Android 10的gomobile应用程序,导致出现键盘(我使用了fyne_demo应用程序)。
  • 输入“hello ”(以空格结尾),并查看是否只添加了一个空格到条目中。
  • 输入“g”,您将看到“g”后面跟着一个空格。

您期望看到什么?

我希望看到输入字符时显示字符。有各种关于如何禁用预测的文档(例如https://developer.android.com/reference/android/text/InputType#TYPE_NULL),但我无法弄清楚如何在默认的gomobile应用程序中设置这些选项,因为在GoNativeActivity.java中似乎无法配置根视图。

您看到了什么?

(如上所述)

cwdobuhd

cwdobuhd1#

我成功地通过使用隐藏的EditText并设置输入类型来强制禁用预测功能:
textEdit.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
然而,在输入时,这不会生成任何按键事件。

6rqinv9w

6rqinv9w2#

我所取得的唯一进展是使用EditText解决方法,将一个打包到视图层次结构中,然后你可以添加一个更改观察者:

mTextEdit.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(...) {
// here we can get the current state of the text field...
});

不幸的是,我无法弄清楚如何逆向工程关键事件,它正在报告当前状态。但这是一个开始...

a7qyws3x

a7qyws3x3#

我遵循了一段时间的这种思路,但后来意识到普通的键盘会收到双击事件,因为它们也会接收按键。
这感觉像是一个非常复杂的情况。有Maven有什么想法吗?:)

相关问题