【问题标题】:Dismissing a DialogFragment when the soft keyboard is hidden隐藏软键盘时关闭 DialogFragment
【发布时间】:2013-12-09 00:45:51
【问题描述】:

我有一个简单的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 和软键盘?

【问题讨论】:

    标签: android android-dialogfragment


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 2012-01-21
      • 2015-09-04
      • 2012-07-22
      • 2017-06-07
      • 2014-07-19
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      相关资源
      最近更新 更多