現在表示されているフラグメントを取得するにはどうすればよいですか? 質問する

現在表示されているフラグメントを取得するにはどうすればよいですか? 質問する

Androidでフラグメントで遊んでいます。

次のコードを使用してフラグメントを変更できることはわかっています。

FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();

MyFragment myFragment = new MyFragment(); //my custom fragment

fragTrans.replace(android.R.id.content, myFragment);
fragTrans.addToBackStack(null);
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();

私の質問は、Java ファイルで、現在表示されている Fragment インスタンスを取得するにはどうすればよいかということです。

ベストアンサー1

トランザクションにフラグメントを追加するときは、タグを使用する必要があります。

fragTrans.replace(android.R.id.content, myFragment, "MY_FRAGMENT");

...そして後でフラグメントが表示されているかどうかを確認したい場合は、次のようにします。

MyFragment myFragment = (MyFragment)getSupportFragmentManager().findFragmentByTag("MY_FRAGMENT");
if (myFragment != null && myFragment.isVisible()) {
   // add your code here
}

参照フラグメント

おすすめ記事