Я использовал эту зависимость ViewPager2:
реализация 'androidx.viewpager2: viewpager2: 1.0.0'
затем я написал код и сделал адаптер для FragmentStateAdapter, как показано ниже:
private inner class ViewPagerAdapter(fragmentManager: FragmentManager,
lifecycle: Lifecycle, config: TribunConfig?)
: FragmentStateAdapter(fragmentManager, lifecycle) {
private val config: TribunConfig?
override fun createFragment(position: Int): Fragment {
return TribunNewsFragment.newInstance(if (menuTribun!!.get(position) == "News") "home"
else menuTribun!!.get(position)!!.replace(" ", "").toLowerCase(), config)!!
}
override fun getItemCount(): Int {
return menuTribun!!.size
}
init {
this.config = config
}
}
в методе onCreate
я реализую некоторый связанный с кодом viewpager2 и его адаптер, как показано ниже:
viewPager2!!.offscreenPageLimit = 1
viewPager2!!.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle, config)
TabLayoutMediator(tabLayout!!, viewPager2!!, TabLayoutMediator.TabConfigurationStrategy { tab: TabLayout.Tab?, position: Int -> tab!!.text = menuTribun!!.get(position) }).attach()
Но у меня проблема, когда я хочу сделать swipeRefresh. Моему swipeRefresh нужен текущий фрагмент для доступа к методу внутри фрагмента. Но в FragmentStateAdapter нет НИКАКИХ МЕТОДОВ getItem
. Кто-нибудь может мне помочь?
TribunNewsFragment
? если вы хотите знать, как я добавил фрагмент, я написал его в методеcreateFragment
- person Nanda Z   schedule 08.04.2020