Android设备:外接扫码枪与系统软键盘问题
16lz
2021-12-04
Android设备:外接扫码枪与系统软键盘问题
- Q&A
Q&A
Q:扫码枪扫码后,自动调起系统软键盘
A:扫码枪相当于外接键盘,对于外接键盘不同的Android设备表现不同,一般我们期望外接键盘与系统键盘互斥。看厂商是否在Framework有做过适配处理。若要不弹出系统软键盘,可禁用Activity软键盘:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
解除禁用:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Q:扫码枪扫码后,自动弹出软键盘,同时EditText显示内容有丢失或代码监听扫码事件,监听到的KeyEvent.getKeyCode是KeyEvent.KEYCODE_ENTER
A:由于扫码枪与系统软键盘冲突,部分数据被系统软键盘拦截,禁用可解决此问题。
Q:扫码枪扫码后,EditText失去焦点
A:扫到的码最后一般带有回车符,导致EditText失去焦点。可给EditText配置如下next系列属性,使其下个焦点仍然指向自己:
<EditText android:id="@+id/edit_scan_code" android:layout_width="800px" android:layout_height="200px" android:textSize="50px" android:nextFocusDown="@id/edit_scan_code" android:nextFocusForward="@id/edit_scan_code" android:nextFocusLeft="@id/edit_scan_code" android:nextFocusRight="@id/edit_scan_code" android:nextFocusUp="@id/edit_scan_code" android:nextClusterForward="@id/edit_scan_code"/>
更多相关文章
- EditText横屏时,弹出软件盘时不进行全屏
- 使用React Native开发Android手持机
- Android笔记Android基于事件监听器处理机制
- Android(安卓)软键盘控制弹出(很好使,自己写的,绝对能用)
- android EditText中inputType的属性列表
- android键盘隐藏
- android 使用contentobserver监听数据库内容变化
- android事件处理机制
- Android应用程序键盘(Keyboard)消息处理机制分析(一)