我正在开发一个Android应用程序。在页面底部的一个活动中,我正在显示一个popupWindow并用这个弹出窗口替换了键盘。这个popupWindow里面有一个searchview,所以当searchview聚焦时,键盘会显示出来,popupWindow会向上滑动。现在,当我按下Back Button(手机的后退按钮)时,键盘和弹出窗口都会关闭。 所以,我想在这里只关闭键盘,弹出窗口应该在键盘关闭后向下滑动。
我尝试了下面的事情:
setBackgroundDrawable(new BitmapDrawable());
poupupWindow.setFocusable(true);
应用KeyListner也在popupWindow上,但它不起作用。
popupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_DOWN) {
return true;
} return false;
}
});
如果有人对此有所了解,请帮助我。非常感谢先进:)
答案 0 :(得分:0)
使用onKeyDown()方法添加代码以隐藏键侦听器内的键盘。
boolean isKeyboardHidden=false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_BACK;
if(!isKeyboardHidden && popupview.isFocused())
{
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
isKeyboardHidden=true;
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}