Dialog关闭后出现软键盘

时间:2014-09-03 14:10:11

标签: android android-softkeyboard android-dialog

每当我专注于某些编辑字段并且Dialog显示时,它会在我解除()后立即拉出软键盘;对话。我已经尝试过各种方法在点击事件后删除它,但无论我做什么它仍然显示。

public static void hideSoftInput(FragmentActivity _activity){
    if(_activity.getCurrentFocus() != null){
        InputMethodManager inputManager = (InputMethodManager) _activity.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(_activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

public static void hideSoftInput(View _v, Context _c){
    if(_v.getWindowToken() != null){
        InputMethodManager inputManager = (InputMethodManager) _c.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(_v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

1 个答案:

答案 0 :(得分:1)

我现在无法找到它,但是此处的其他人建议在postDelayed呼叫中包裹呼叫以隐藏键盘。

当许多其他选项失败时,它对我有用。唯一的问题是,它可能会给屏幕带来一个有趣的微笑,因为你会在试图显示时压制键盘。如果没有postDelayed,它似乎会在Android尝试在对话框关闭后显示它之前尝试隐藏键盘。因此,最终我们必须在Android中解决计时问题。

这样的事情:

view.postDelayed(new Runnable()
{
    @Override
    public void run()
    {
        hideKeyboard();
    }
}, 50);