我正在使用支持库处理片段并在片段中嵌套片段。
我有一个场景,我从现有片段中添加一个新片段(其中包含一个 EditText)。当用户点击 EditText 时,会显示一个虚拟键盘。但是当键盘打开时,用户可以从 ActionBar 中按下主页按钮,这会从堆栈中删除片段,但键盘仍然保持打开状态。我无法强制关闭键盘,我尝试了所有代码片段。鉴于所描述的场景,谁能指导我如何解决这个问题?
编辑:我做了一个回调函数,我从片段 onDestroy 中调用它。承载所有片段的 MainActivity 实现了这个回调:
@Override
public void onHideSoftKeyboard(EditText editText) {
// HIDE SOFT KEYBOARD HERE
final InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
Toast.makeText(this,"KEYBOARD HIDDEN",Toast.LENGTH_LONG).show();
}
我收到 Toast 消息,并且片段在后退按钮(ActionBar 后退按钮)上被破坏,只有键盘仍然存在。
@Override
public void onDestroy() {
hideSoftKeyboard.onHideSoftKeyboard(editTextComment);
super.onDestroy();
}