我有两个片段和一个全屏对话框片段,它们的导航方式如下:
片段 1 > 片段 2 > 全屏对话框片段。
当我关闭 dialogFragment 时,我想回到 Fragment 1 而不显示 Fragment 2。
我现在做的是
在片段 1 中:
navController.navigate(R.id.Fragment2, bundleOf(), navOptions)
在片段 2 中:
override fun onAttachFragment(childFragment: Fragment) {
if (childFragment is DialogFragment) {
childFragment.dismissButtonClickListener = {
requireActivity().onBackPressed()
}
}
}
在对话框片段中:
var dismissButtonClickListener: (DialogFragment.() -> Unit)? = null
dismiss_button.setOnClickListener {
dismiss()
actionButtonClickListener?.invoke(this)
}
这工作得很好。但是,当 DialogFragment 被关闭时,父片段(Fragment 2)会显示一秒钟,就像用户按下了后退按钮一样。有没有办法直接从 DialogFragment 返回 Fragment1 而不显示 Fragment2?