前提・実現したいこと
BaseFragment は Navigation Graph で他のFragmentから遷移してきた fragmentです。
BaseFragment に ViewPager, TabLayout があります。
この ViewPager に ChildFragment1, ChildFragment2 を FragmentStatePagerAdapter を使用して表示しています。
BaseFragment, ChildFragment1, ChildFragment2 で ViewModel を介してデータを共有したいと考えています。
ただし今回は仕様上、ViewModel は Activityをオーナーにすることはできない前提です。
そのため、BaseFragment で this をオーナーに ViewModel を生成し、
ChildFragment1, ChildFragment2 では、parentFragment をオーナーに ViewModel を生成しようと考えました。
発生している問題・エラーメッセージ
ChildFragment1, ChildFragment2 では、parentFragment を参照すると、BaseFragment ではなく、 navHostFragment になってしまい、
3つの fragment 間で同じ ViewModel のインスタンスを生成できません。
どのようにすれば3つの fragment 間で、 fragmentがオーナーレベルの ViewModel のインスタンスを共有できるでしょうか?
補足情報(FW/ツールのバージョンなど)
kotlin 1.5.21
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。