隐藏在软键盘后面的日期选择器对话框

Date picker dialog hiding behind soft keyboard

如图所示,我有一个日期选择器对话框,它在单击 Edittext 控件时启动。但它部分隐藏在已经从以前的 Edittext 控件打开的软键盘后面。如何在启动日期选择器对话框时隐藏软键盘?

我已经尝试了 1 and 2 中的代码,但没有帮助。

如果键盘打开,您可以检查 onClick 事件。如果它打开了你可以强行关闭它。

View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

如果这没有帮助你也可以试试下面的代码: 您应该检查视图上的 onFocus 更改事件

View.OnFocusChangeListener listener;
    listener = new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if (v.getId() == R.id.address && !hasFocus) {
                        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                    }

                }
            };