公開されているGoogleサンプルにて
下部タブごとのバックスタック実装。
自然だと思う。
コード内コメントを見ていると
This sample is a workaround until the Navigation Component supports multiple back stacks.
このサンプルは、ナビゲーションコンポーネントが複数のバックスタックをサポートするまでの回避策です。
この拡張関数周りのコードはコンポーネント内に内包されることになるのだろう。
が、しかし、Fragment のライフサイクルに依存しながら動くMVVMのスタイルでは、そのコンテンツデータの読み込みは再度行われることになるはず。
はっきり衝突してないか、
AAC と MVVM。
このサンプルでは、Fragment のみの実装なので複数のバックスタックがまともに動いているが、実際の現場ではそうはいかないはず。