我在一个活动中有8个对话和2个底页片段。那么如果有任何对话框被打开,我如何关闭ondestroy()?在activity中创建一个全局对话对象并检入onDestroy()方法是否是一个好方法?如果是开着就关上如果有其他有效的方法,请通知我。现在我放弃了onDestroy()方法,但我认为这不是一个很好的方法来使所有对话框和botomsheet片段的全局对象。
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,像这样做是完全可以接受的
1条答案
按热度按时间qojgxg4l1#
无论你在哪里创建对话框,你都可以将它应用到一个变量上,例如:
如果创建了多个,则可以将其添加到数组列表中,然后循环以关闭和删除
这同样适用于bottomSheetDialogs,像这样做是完全可以接受的