Я знаю, что не отвечаю на ваш вопрос напрямую, но проблему можно решить, изменив способ создания / использования адаптера.
Основное изменение состоит в том, что вместо того, чтобы позволить адаптеру решать, как заполнятьпредставление, которое мы даем этой «ответственности» пользователю.
Мы делаем это, запрашивая список страниц, в этом примере я использовал Pair<String, Fragment>
, но вы можете создать фактическую модель данных со всей необходимой информациейвам нужно.
class SectionsPagerAdapter(
fragmentManager: FragmentManager,
behavior: Int,
val pages: List<Pair<String, Fragment>>
) : FragmentPagerAdapter(fragmentManager, behavior) {
override fun getItem(position: Int): Fragment = pages[position].second
override fun getCount(): Int = pages.size
override fun getPageTitle(position: Int): CharSequence = pages[position].first
}
И когда вы создаете адаптер, вы создаете его внутри Activity/Fragment
вот так
val pages = listOf( /* Change the list to fit your exact needs*/
context.getString(R.string.kitten_tab) to HomeFragment(),
context.getString(R.string.kitten_tab) to KittensFragment(),
context.getString(R.string.cat_tab) to CatsFragment(),
context.getString(R.string.fosterer_tab) to FosterersFragment(),
context.getString(R.string.faa_user_tab) to FAAUsersFragment()
)
val adapter = SectionsPagerAdapter(
supportFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT,
pages
)
Таким образом, вы не только решаете проблему, но иВы также получаете масштабируемое решение, которое поддерживает не только этот вариант использования, но и любой другой вариант использования