美文网首页
inputFilter与输入法联想的兼容性问题

inputFilter与输入法联想的兼容性问题

作者: 普通的程序员 | 来源:发表于2022-12-06 15:59 被阅读0次

背景很简单。

需要在用户输入时进行过滤部分字符。

也就是说TextWatcher的onTextChanged不是很好的满足我们的需求。最好的方式是用InputFilter。

很简单的一个api。

测试环境:中文,baidu输入法-》ok

中文,sogou输入法-〉ok

英文,sogou输入法-》fail

aosp,英文,-〉fail

英文,facemoji -》fail

fail的表现是
“输入abc,联想词有abc,edittext填充的是abcabc”
“输入abcdefg,联想词abcdefg,按删除,edittext一直填充,无法正常删除”

我第一反应就是输入法的兼容问题。
参考资料有
https://www.jianshu.com/p/1b2d54f865d3

https://jmeow.org/android/jie-jue-edittext-zhong-inputfilter-yu-lian-xiang-ci-shu-ru-fa-chong-tu/

本质是联想词的处理有点问题。

理论上禁用联想就可以了,我尝试限制 InputType -》 no_suggestion

image.png

这应该是影响最小的flag了

自测aosp ok,facemoji ,sogou fail

我再加大flag -> TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
密码输入总不会有联想词了吧


image.png

aosp,facemoji ok,sogou fail

我的解决方案,不再使用inputfilter了,用另外的交互方案来解决。

参考链接里的方案,用了,效果很差,不推荐。

相关文章

网友评论

      本文标题:inputFilter与输入法联想的兼容性问题

      本文链接:https://www.haomeiwen.com/subject/thvwfdtx.html