LoginSignup
0
1

More than 3 years have passed since last update.

ViewPager2のFragmentのtag名はf0, f1, f2

Last updated at Posted at 2020-07-24

ActivityからFragmentのメソッドを呼びたいときは、FragmentManagerクラスのfindFragmentByIdメソッドまたはfindFragmentByTagメソッドを使ってFragmentの参照を取得してメソッドを呼び出すことが公式で案内されています。

アクティビティと通信する

FragmentがViewPagerのページを構成しているときは、公式の記載は無いですが、このようなやり方でFragmentの参照を取得することができます。

ViewPagerのadapterFragmentPagerAdapterを使っている場合のみ有効です。FragmentStatePagerAdapterを使っている場合はFragmentの参照を取得できませんでした。

PagerActivity.kt
// 2ページ目FragmentのsomeMethodメソッドを呼び出す
val id = viewPager.id
val index = 1
val tag = "android:switcher:$id:$index"
val f = supportFragmentManager.findFragmentByTag(tag) as SomeFragment?
f?.someMethod()

今回、ViewPager2を使っている場合はどうすれば良いか調べてみました。
f0, f1, f2のように、よりシンプルなタグ名が付けられていました。

PagerActivity.kt
// 2ページ目FragmentのsomeMethodメソッドを呼び出す
val tag = "f1"
val f = supportFragmentManager.findFragmentByTag(tag) as SomeFragment?
f?.someMethod()

情報源(Stackoverflow)

公式情報では無いのでライブラリをアップデートしたときはご注意ください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1