【问题标题】:Prevent BottomSheetDialogFragment from hiding keyboard防止 BottomSheetDialogFragment 隐藏键盘
【发布时间】:2020-08-26 11:10:40
【问题描述】:

如果我在当前活动/片段中打开了键盘,当我呈现 BottomSheetDialogFragment 时,键盘会被关闭,但我希望键盘保持在 BottomSheetDialogFragment 后面的背景中。当我显示 BottomSheetDialogFragment 并防止键盘被关闭时,有没有办法让键盘在 bottomSheetDialogFragment 后面打开?

我正在像这样显示 BottomSheetDialogFragment:

modalBottomSheet.show(
                (activity as AppCompatActivity).supportFragmentManager,
                ModalBottomSheet.TAG + System.currentTimeMillis().toString()
)

【问题讨论】:

  • 当您创建系统默认的警报对话框时,键盘在警报对话框后面保持打开状态。而且,当您通过导航组件打开一个新的片段时,键盘会从前一个片段保持打开状态。所以我认为可能有办法,但我似乎无法弄清楚。
  • 所以从技术上讲,BottomShetDialogFragment 是一个片段,因此在打开新片段时键盘应该保持打开状态。它显示一个底部对话框,这是一个对话框,因此键盘应保持打开状态。

标签: android keyboard bottomsheetdialogfragment


【解决方案1】:

我想通了。在您的 BottomSheetDialogFragment 的子类中,在方法中: override fun setupDialog(dialog: Dialog, style: Int), do:

dialog.window?.setFlags(
            WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
            WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 2014-11-19
    • 2021-03-28
    • 2011-12-22
    • 2019-09-07
    • 2016-02-18
    • 2019-06-17
    • 2019-08-10
    相关资源
    最近更新 更多