TextInputEditText无焦点时仍接收键盘事件且Activity无法捕获dispatchKeyEvent的问题求助
TextInputEditText无焦点时仍接收键盘事件且Activity无法捕获dispatchKeyEvent的问题求助
各位大佬好,我遇到一个挺棘手的问题,想请教下大家的解决思路:
我正在开发一个带ViewPager的Activity,用来在3个Fragment之间滑动切换。为了处理设备扫描器生成的按键事件,我在Activity里重写了dispatchKeyEvent方法,目的是根据扫描内容把事件传递给对应的Fragment处理。
其中一个Fragment里包含TextInputLayout和TextInputEditText,支持用户手动录入数据。当用户点击软键盘的「Done」按钮时,我会执行以下操作:
- 保存输入的数据
- 隐藏软键盘
- 调用
getActivity().getCurrentFocus().clearFocus()(已经做了空值校验)
但现在出现了奇怪的问题:就算getActivity().getCurrentFocus()返回null,当我再次使用扫描器时,扫描的内容还是会自动填充到那个TextInputEditText里,而且Activity的dispatchKeyEvent完全捕获不到这些扫描事件了。
目前我发现唯一能恢复正常的方法是:切换ViewPager里的其他Fragment,再切回这个有输入框的Fragment,之后扫描事件就能被Activity正常捕获,输入框也不会乱接收内容了。
有没有大佬遇到过类似的问题?求指点!
备注:内容来源于stack exchange,提问作者Nano
相关产品推荐
相关产品推荐

