这次写的业务中正好包括了扫码枪的内容,借这个机会记录一下扫码枪要怎么处理,还有焦点问题。
首先扫码枪其实是直接录入Edittext的,并且是一个一个字母/数字录入的。那么我们首先要有一个能够录入内容的Edittext:
android:id="@+id/et_scanCodeInput"
android:layout_width="1dp"
android:layout_height="1dp"
android:focusable="true"
android:focusableInTouchMode="true" />
宽高要设置为1dp,如果为0实测会有问题,不确定是不是因为框直接没了就无法录入了。
然后在onResume中etScanCodeInput.requestFocus(),让我们的输入框获取到焦点。一.干掉输入法
在init的时候发现,如果Edittext设置了焦点,输入框就必然会弹出来,这样的体验实在不佳,必须要干掉。
这时我们就要用到setShowSoftInputOnFocus
, 但是这个方法是隐藏的,必须要通过反射的方法来调用。this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class cls = EditText.class;
Method setShowSoftInputOnFocus;
s