做一个快递柜的项目,android连接读卡器,刷卡的时候会弹出一个Dialog窗口,上面放了一个
gradview,每次刷卡弹窗的时候,gradview的第一个item都会获取到焦点,再次刷卡还会触发
这个itme的点击事件,这个怎么解决?
可以让父布局可以获取焦点,并且主动申请焦点。这种感觉:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:focusable="true"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<requestFocus/>
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
关于再次刷卡还会触发点击,我觉得你还是先检查下代码逻辑比较好。
如果只是不希望打开dialog之后获取焦点弹出软键盘可以这样
```java
public class MyDialog extends Dialog {
@SuppressWarnings("ConstantConditions")
public MyDialog(@NonNull Context context) {
super(context);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
}
```
http://blog.csdn.net/niheng1452/article/details/53978125
在与gridview绑定的的adapter类中,重载isEnabled。
代码如下:
@Override
public boolean isEnabled(int position)
{
if(position == 0) //也可以是别的判断条件
return false;
else
return true;
}