Android 键盘在我关闭对话框后弹出

Android 键盘在我关闭对话框后弹出,android,Android,在我的片段中,我调用DialogFragment,然后调用 getDialog().dismiss(); 把这个放在我的字典里 @Override public void onDismiss(DialogInterface dialog) { InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

在我的片段中,我调用DialogFragment,然后调用

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);