[英]Problem with navigating fragments when i press on back
有一個片段,其中顯示了recyclerView
列表。 當我在MainActivity
單擊列表項時,將調用該方法:
fun FragmentActivity?.replaceFragment(fragment: Fragment): Boolean {
if (this == null) return false
try {
supportFragmentManager?.beginTransaction()?.replace(
R.id.container, fragment,
fragment.createTagName()
)?.commit()
} catch (ignored: IllegalStateException) {
return false
}
return true
}
之后,我按系統后退按鈕,我有一個重復的列表。
我也可以在MainActivity
下一個樂趣:
override fun onBackPressed() {
val onBackPressListener = currentFragmentInContainer() as? OnBackPressListener
if (onBackPressListener?.onBackPress() != true) {
super.onBackPressed()
}
}
問題是您尚未將當前片段添加到后堆棧中。 為了到達起點,您必須標記片段。 addToBackStack(tag:String)
將幫助您做到這一點。
碼:
fun FragmentActivity?.replaceFragment(fragment: Fragment): Boolean {
if (this == null) return false
try {
supportFragmentManager?.beginTransaction()?.replace(
R.id.container, fragment,
fragment.createTagName()
).addToBackStack(fragment.createTagName())?.commit()
} catch (ignored: IllegalStateException) {
return false
}
return true
}
這是有關該方法的文檔: addToBackStack
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.