这是在项目中出现的问题并给予解决的一篇博客,曾经出现过解决了又忘了。再次出现也是措手不及,所以在此记录下来。
首先是出现的问题吧。使用 EditText 和 PopWindow 的一个组合完成一次模糊查询功能,而问题就是在配置PopWindow的时候会出现焦点到底在哪里的问题,焦点碰撞以及输入框和显示PopWindow(ListView)的界面碰撞问题。
直接面对重点(界面就不写了):都知道在配置PopWindow的时候会有一堆setXxxxx的设置,其中对这个问题需要关注的就是
setFocusable(boolean flag);// 获得焦点可以点击PopWindow中的ListView
setBackgroundDrawable(Drawable background);// 设置背景
setTouchable(boolean flag);// 设置可点击点击
在需要开始配置的时候我们以如下的方式进行配置:
setTouchable(true);
setBackgroundDrawable(new BitmapDrawable());
...其他的设置
setBackgroundDrawable(new BitmapDrawable());
...监听事件
按照这个方法就可以解决在 EditText 输入内容并通过模糊查询得到数据通过 PopWindow 显示之后,就会出现 EditText 光标卡死的现象。
而第二个问题主要是设置一个配置 setInputMethodMode(PopWindow.INPUT_METHOD_NEEDED);当然这只是其中一种配置方式,在与软键盘设置有时还需要在配置文件中的Activity中进行配置(android:windowSoftInputMode="xxx")。