0

我目前正在开发一个具有BottomSheetDialog导航菜单的应用程序。此菜单由工具栏导航项调用。

当调用 BottomSheetDialog 时,它会显示出来,然后单击列表中的一个项目会创建相关的活动,这是预期的。但是,当我关闭新打开的活动时,BottomSheetDialog 再次出现,这不是预期的行为。

它能做什么

有什么方法可以防止 BottomSheetFragment 出现吗?

我尝试.also在创建 Intent 后使用,但没有专门用于隐藏或关闭 Dialog 的功能

这是 BottomSheetFragment 代码:

class frgBottomSheetDrawer : BottomSheetDialogFragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        super.onCreateView(inflater, container, savedInstanceState)
        return inflater.inflate(R.layout.fragment_bottomsheet, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)

        navDrawer.setNavigationItemSelectedListener { menuItem ->
            when (menuItem!!.itemId) {
                R.id.ndListFolder -> this.startActivity(Intent(activity, ndActFolder::class.java))
                R.id.ndListSettings -> this.startActivity(Intent(activity, ndActSettings::class.java))
                R.id.ndListAbout -> this.startActivity(Intent(activity, actAbout::class.java))
            }
            true
        }
    }
}

4

1 回答 1

1

要在 Item Click 后关闭 bottomSheet 对话框,请尝试以下操作

 navDrawer.setNavigationItemSelectedListener { menuItem ->
            when (menuItem!!.itemId) {
                R.id.ndListFolder -> this.startActivity(Intent(activity, 
                ndActFolder::class.java))
                 dismiss() // add this whenever you want to close the bottomSheet

            }
            true
        }

所以你只需要添加这个方法dismiss()

于 2020-07-12T09:27:30.487 回答