双击 BottomSheetDialog 快速给出两个对话框

Mer*_*aju 1 android kotlin bottom-sheet

我有一个底部表单对话框片段,用作底部应用程序栏的菜单。

如果我非常快地单击菜单图标两次,该对话框会显示两次,并且我必须将其关闭两次,这很烦人。

我的代码如下:

活动主页.kt

override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
    android.R.id.home -> {
        if(mBottomNavDrawerFragment != null && mBottomNavDrawerFragment!!.dialog!!.isShowing){
            mBottomNavDrawerFragment?.dismiss()
            return false
        }
        mBottomNavDrawerFragment = RoundedBottomSheetDialogFragment()
        mBottomNavDrawerFragment?.show(supportFragmentManager, mBottomNavDrawerFragment?.tag)
        true
    }
    R.id.BottomAppBar_fromHomeActivity_MenuMain_Search -> {
        Toast.makeText(this, "Not Implemented yet!", Toast.LENGTH_SHORT).show()
        false
    }
    else -> true
}
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢

raj*_*ala 12

使用标签显示dialogFragment。在再次显示之前检查标签是否存在于堆栈中

    if(getChildFragmentManager().findFragmentByTag(FragmentDialog.TAG) == null) {
        fragmentDialog.show(getChildFragmentManager(), FragmentDialog.TAG);
    }
Run Code Online (Sandbox Code Playgroud)