1. ホーム
  2. android

[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する

2022-07-10 09:30:49

質問

ナビゲーションコンポーネントを試す前に、私は手動でフラグメントトランザクションを行い、現在のフラグメントを取得するためにフラグメントタグを使用していました。

val fragment:MyFragment = supportFragmentManager.findFragmentByTag(tag):MyFragment

さて、私のメインのアクティビティレイアウトでは、次のようなものがあります。

<fragment
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/nav_host"
        app:navGraph= "@navigation/nav_item"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:defaultNavHost= "true"
        />

ナビゲーションコンポーネントで、現在表示されているフラグメントを取得するにはどうすればよいですか? すること

supportFragmentManager.findFragmentById(R.id.nav_host)

NavHostFragment で、表示されている'MyFragment`を取得したい。

ありがとうございます。

どのように解決するのですか?

今のところ、なんとか方法を発見することができました。

NavHostFragment navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host);
navHostFragment.getChildFragmentManager().getFragments().get(0);

もちろん、最初の断片であることはご存知でしょう。私はまだこれを使用しない方法を調査しています。ベストな方法ではないことは承知していますが、とりあえずはこれでいいと思います。