Android设备:外接扫码枪与系统软键盘问题

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"/>

你可能感兴趣的:(Android,android,移动开发)