web-dev-qa-db-ja.com

Androidナビゲーションコンポーネント:フラグメントの状態を保存する方法

私はbottomNavigationViewとナビゲーションコンポーネントを使用しています。別のタブに切り替えて元のタブに戻った後、フラグメントを破棄しない方法を教えてください。たとえば、A、B、Cの3つのタブがあります。開始タブはAです。Bに移動してからAに戻ります。タブAに戻ったときに、再作成したくありません。どうやって?ありがとう

23
Nikitc

未解決の問題 のように、ナビゲーションは複数のバックスタックを直接サポートしていません。つまり、フラグメントは複数のバックスタックをサポートしていないため、AまたはCからBに戻るときにスタックBの状態を保存します。

このコメント に従って:

NavigationAdvancedSampleが https://github.com/googlesamples/Android-architecture-components/tree/master/NavigationAdvancedSample で入手できるようになりました

このサンプルでは、​​下部のナビゲーションタブごとに1つずつ、複数のNavHostFragmentsを使用して、複数のバックスタックをサポートするFragment APIの現在の制限を回避します。

複数のバックスタックをサポートするFragment APIと、作成後にプラグインするNavigation APIに進みます。これにより、NavigationExtensions.ktファイルなどの必要がなくなります。この問題を引き続き使用して、その作業を追跡します。

したがって、今すぐアプリでNavigationAdvancedSampleアプローチを使用し、問題にスターを付けて、根本的な問題が解決され、直接サポートがNavigationに追加されたときに更新を取得できます。

17
ianhanniballake

フラグメントに ViewModels を使用してみてください。

0
Vahag Chakhoyan