From deac9ab77857c54aa719d572e3746ad3da931e27 Mon Sep 17 00:00:00 2001
From: tobias ns <13521090@std.stei.itb.ac.id>
Date: Fri, 5 Apr 2024 09:21:20 +0700
Subject: [PATCH] fix: backstack problem on navigation

---
 .../if3210_2024_android_aab/MainActivity.kt    | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/com/example/if3210_2024_android_aab/MainActivity.kt b/app/src/main/java/com/example/if3210_2024_android_aab/MainActivity.kt
index b72b7f1..1192c8d 100644
--- a/app/src/main/java/com/example/if3210_2024_android_aab/MainActivity.kt
+++ b/app/src/main/java/com/example/if3210_2024_android_aab/MainActivity.kt
@@ -148,7 +148,21 @@ class MainActivity : AppCompatActivity() {
 //        }
 //    }
 
-    private fun replaceFragment(fragment: Fragment) {
-        supportFragmentManager.beginTransaction().replace(R.id.frame_layout, fragment).addToBackStack(null).commit()
+    private fun replaceFragment(fragmentToShow: Fragment) {
+        val fragments = supportFragmentManager.fragments
+        val transaction = supportFragmentManager.beginTransaction()
+        for (fragment in fragments) {
+            if (fragment != fragmentToShow) {
+                transaction.hide(fragment)
+            }
+        }
+
+        if (!fragmentToShow.isAdded) {
+            transaction.add(R.id.frame_layout, fragmentToShow)
+        } else {
+            transaction.show(fragmentToShow)
+        }
+
+        transaction.commit()
     }
 }
\ No newline at end of file
-- 
GitLab