如何在 BottomSheetDialogFragment 顶部显示另一个片段

Posted

技术标签:

【中文标题】如何在 BottomSheetDialogFragment 顶部显示另一个片段【英文标题】:How to display another fragment on top of BottomSheetDialogFragment 【发布时间】:2020-10-17 02:39:51 【问题描述】:

有没有办法在DialogFragment 上显示片段?当我的BottomSheetDialogFragment 在某些操作后显示时,我需要显示另一个片段(不是对话框片段的类型)而不关闭该对话框,我试图从对话框中删除暗淡效果而不是隐藏视图,但这并不好,对话框片段是不可见的,但是,它是钢在顶部和后压首先删除这个不可见的对话框,我需要实现的是正常的回栈顺序,如“正常”片段

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我找到的解决方案是:

    在您的 BottomSheetDialogFragment 布局上,将 id 设置为 ViewGroup(您可以使用根视图或在某处添加 FrameLayout)

    在您的 BottomSheetDialogFragment 类中使用它来打开新片段:

     childFragmentManager.beginTransaction()
             .add(R.id.yourId, newFragment, newFragment.tag)
             .addToBackStack(newFragment.tag)
             .commit()
    

问题:当你按下后退按钮时,它会关闭整个对话框,所以我在第二个片段中放置了一个 X 图标,调用 parentFragmentManager.popBackStack()

【讨论】:

以上是关于如何在 BottomSheetDialogFragment 顶部显示另一个片段的主要内容,如果未能解决你的问题,请参考以下文章

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?

如何在 Fragment 中调用 OnActivityResult 以及它是如何工作的?

如何使用 Firebase 在 Web 上托管 Flutter?它的效果如何?