発生している問題・エラーメッセージ
BottomNavigationで ホーム ダッシュボード 通知 とタブが複数ある場合
一番最初に表示されるホームフラグメントでは 別のフラグメントに遷移し、戻るボタンを押すと遷移元のホームフラグメントに戻る
しかしホーム以外のフラグメントで遷移、戻るボタンを押すと それぞれの通知、ダッシュボードのフラグメントではなくホームフラグメントまで一気に戻ってしまう(addToBackStackの記載があるのに)
どうしたら、きちんと一個前のFragmentに戻ることができるのでしょうか?教えていただきたいです。
該当のソースコード
Kotlin
1 2class DashboardFragment : Fragment() { 3 4 private lateinit var button: Button 5 6 override fun onCreateView( 7 inflater: LayoutInflater, 8 container: ViewGroup?, 9 savedInstanceState: Bundle? 10 ): View? { 11 val root = inflater.inflate(R.layout.fragment_dashboard, container, false) 12 button = root.findViewById(R.id.button) 13 14 button.setOnClickListener { 15 val activity = context as MainActivity 16 val next = NextFragment() 17 activity.supportFragmentManager 18 .beginTransaction() 19 .replace(R.id.dashboard_replace, next) 20 .commit() 21 22 23 } 24 25 return root 26 } 27}
タブの切り替えはどうやってますか? Jetpack Navigation Components をお使いでしょうか?
はい!Jetpack Navigation Componentsを使っております.
Navigation Components をお使いなら、フラグメントの遷移は beginTransaction は直接使わず、findVavController().navigate(〜) すべきかと。
https://developer.android.com/guide/navigation/navigation-navigate
そのようなものがあるんですね...!教えていただきありがとうございます!
すみません、質問なんですがActivityが一つしかない場合、Navgationの紐付けはどこで行えばいいのでしょうか?
Navgation の紐付けとは? res/navigation の下にある XML ファイルのことでしょうか?
こちらに書いてある Navigationを呼び出す のことです
https://qiita.com/tktktks10/items/7df56b4795d907a4cd31
解決しました。それぞれのタブごとにNavigationが必要だと勘違いしてましたが一つだけでいいのですね。ありがとうございました。
回答1件
あなたの回答
tips
プレビュー