mSearchWrapper
是一个包含EditTextView
的视图。 mSearchWrapper
变为visible
和gone
。
当它变为visible
时,我会显示键盘并请求焦点到EditTextView:
private void showInput() {
InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
此时,用户可以按后退按钮并关闭键盘。我想创建一个“这里”一个后栈,其中:在背面按下不仅键盘被隐藏,而且mSearchWrapper
也被隐藏(mSearchWrapper.setVisibility(View.GONE);
)。
如何在一个反压事件中同时拥有键盘隐藏的Backstack和setVisibility(View.GONE)?
(替代方法:如何在特定的现有Backstack中添加一些代码?)
我应该将该活动中的整个后台重写为shown here吗?
答案 0 :(得分:0)
我得到了this example的帮助。
我将Activity中的editext类扩展为:private class HidableEditText extends EditText
并以编程方式从XML移动所有属性(以编程方式添加视图)。
然后我覆盖了onKeyPreIme
:
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
mSearchWrapper.setVisibility(View.GONE);
}
return super.onKeyPreIme(keyCode,event);
}
super
可以为我隐藏键盘(以及堆叠),所以我只需要调整可见性。