我使用了ViewPager2依赖库:
implementation '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()
但是我在制作下拉刷新时遇到了问题。我的下拉刷新需要当前片段访问片段内部的方法。但是在FragmentStateAdapter中getItem
没有方法。有人能帮助我吗?
TribunNewsFragment
类吗?如果你想知道我是如何添加片段的,我已经在方法createFragment
中写了。 - Nanda Z