【发布时间】:2020-04-08 08:25:00
【问题描述】:
我使用了这个 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 中没有 NO METHOD getItem。谁能帮帮我?
【问题讨论】:
-
1.在适配器中创建属性以保存所有片段 2. 保存当前位置 3. 在需要时按位置从片段列表(属性)中获取片段
-
你能用代码显示吗?所以我可以投票你的答案,如果它是正确的
-
你熟悉 EventBus 吗?
-
@dariushf 不,还没有
-
@NandaZ : 请展示您的代码如何在 viewpager 中添加片段
标签: android android-fragments kotlin android-viewpager2