android - 在项目菜单单击时隐藏或关闭 BottomSheetDialog (Kotlin)

android - Hide or close BottomSheetDialog on item menu click (Kotlin)

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

当调用 BottomSheetDialog 时,它会出现,点击列表中的一个项目会创建相关的 activity,这是预期的。但是,当我关闭新打开的 activity 时,BottomSheetDialog 再次出现,这不是预期的行为。

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

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

这是 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
        }
    }
}

要在单击项目后关闭 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()