kotlin 如何在单个Activity中关闭多个对话框和底页对话框片段?

kmynzznz  于 2023-06-24  发布在  Kotlin
关注(0)|答案(1)|浏览(148)

我在一个活动中有8个对话和2个底页片段。那么如果有任何对话框被打开,我如何关闭ondestroy()?在activity中创建一个全局对话对象并检入onDestroy()方法是否是一个好方法?如果是开着就关上如果有其他有效的方法,请通知我。
现在我放弃了onDestroy()方法,但我认为这不是一个很好的方法来使所有对话框和botomsheet片段的全局对象。

qojgxg4l

qojgxg4l1#

无论你在哪里创建对话框,你都可以将它应用到一个变量上,例如:

val someDialog: SomeDialog? = null

override fun onResume() {
    someDialog = SomeDialog().show(parentFragmentManager)
}

override fun onDestroy() {
    someDialog?.dismiss()
    someDialog = null
}

如果创建了多个,则可以将其添加到数组列表中,然后循环以关闭和删除

val someDialogs: ArrayList<SomeDialog> = arrayListOf()

override fun onResume() {
    someDialogs.add(SomeDialog().show(parentFragmentManager))
}

override fun onDestroy() {
    someDialogs.forEach {
        it.dismiss()
    }
}

这同样适用于bottomSheetDialogs,像这样做是完全可以接受的

相关问题