Android 键盘在我关闭对话框后弹出
在我的片段中,我调用DialogFragment,然后调用Android 键盘在我关闭对话框后弹出,android,Android,在我的片段中,我调用DialogFragment,然后调用 getDialog().dismiss(); 把这个放在我的字典里 @Override public void onDismiss(DialogInterface dialog) { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
getDialog().dismiss();
把这个放在我的字典里
@Override
public void onDismiss(DialogInterface dialog)
{
InputMethodManager imm =
(InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive())
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
super.onDismiss(dialog);
}
但出于某种原因,当我回到片段时,一个键盘似乎会弹出,我尝试了各种方法,包括尝试在片段的回调中隐藏键盘,但似乎没有任何效果
在我的片段中,我调用DialogFragment,然后调用
getDialog().dismiss();
试试这个:
在代码中
在Menifest文件中使用StateAllwaysHidden
因为您使用的是ToggleSoftInputShowFlags,int hideFlags用于切换软键盘的状态。来自博士
This method toggles the input method window display.
您可以使用hideSoftInputFromWindow,它强制Android使用InputMethodManager隐藏虚拟键盘,调用hideSoftInputFromWindow,传递包含聚焦视图的窗口标记
如果您在片段中,请尝试此代码块
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWaYS_HIDDEN);
或者,如果您正在活动:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWaYS_HIDDEN);
请确保在设置内容视图之前或在膨胀视图之前执行此操作是的,谢谢我已经有了此方法,我在回拨中尝试了此方法,我在onDismiss中尝试了此方法,正如您在编辑中建议的那样,但相同result@BoluOkunaiya然后在menifest文件中使用StateAllwaysHidden
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWaYS_HIDDEN);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWaYS_HIDDEN);