隐藏软键盘时关闭DialogFragment

时间:2013-11-24 10:46:52

标签: android android-dialogfragment

我有一个包含DialogFragment的简单EditText。创建DialogFragment后,立即显示软键盘,EditText通过使用以下方式立即获得焦点:

    mEditText.requestFocus();
    getDialog().getWindow().setSoftInputMode(
            LayoutParams.SOFT_INPUT_STATE_VISIBLE);

事实上,我所拥有的内容基本上就像这个博客中给出的例子一样:

http://android-developers.blogspot.co.uk/2012/05/using-dialogfragments.html

按下后退按钮时,我希望DialogFragment被解雇。实际发生的是第一次按下后退按钮会导致软键盘被隐藏。需要进一步的背压才能解除DialogFragment

我很惊讶似乎没有一个简单的API解决方案(例如设置标志),因为我认为这是一个常见的要求。

在SO上搜索了最佳选项似乎是检测软键盘何时被隐藏,然后在该事件上调用dismiss()。用于检测软键盘的这种可能的解决方案是隐藏的:

EditText with soft keyboard and "Back" button

How to check visibility of software keyboard in Android?

在我开始使用上述解决方案之一之前,还有其他任何方法我应该考虑使用后退按钮一次点击整个DialogFragment和软键盘吗?

1 个答案:

答案 0 :(得分:0)

为什么不使用取消按钮而不是利用后退按钮?