我有一個對話框片段,上面有一個關閉按鈕。
這個對話框是從兩個不同的活動中呼叫的。一種將其用作簡單片段,另一種用作對話片段。
在它的 onClick 方法中,我呼叫requireActivity.onBackPress()它來關閉對話框。
我不想呼叫dismiss,因為我有一個用例,我希望呼叫活動來處理它(顯示一個確認對話框)。
在將其顯示為對話框片段的活動中,呼叫onBackPress不僅關閉對話框還完成活動:scary_face
按下實際的后退按鈕只是將其關閉。
關于我在這里缺少什么的任何想法?
對話框片段中的代碼:
viewBinding.closeBtn.setOnClickListener {
requireActivity().onBackPressed()
}
啟動對話框片段的代碼
SharePatientDialogFragment.newInstance(shareData)
.show(context.supportFragmentManager, "share")
uj5u.com熱心網友回復:
您正在呼叫onBackPressed()活動的 ,而不是從 DialogFragment 呼叫。
因此,您的活動正在關閉,因此對話框也將關閉。
要修復它,您必須呼叫onBackPressed()對話框片段的 以確保關閉對話框片段。
Fragment不擁有onBackPressed()方法但Dialog類擁有,因此您需要檢查它是否是對話框,然后在可用時呼叫該方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371982.html
上一篇:如何用Android資料系結替換androidx.fragment.app.FragmentContainerView中的片段
