0

我在片段中设置 ViewPager2 时遇到问题。据我所知,我所做的一切都是正确的,但是我想在托管片段中显示的片段根本不显示。这是我的适配器:

class RepsViewPagerAdapter(supportFragmentManager: FragmentManager, lifecycle: Lifecycle):
    FragmentStateAdapter(supportFragmentManager,lifecycle) {

    private val fragments = arrayListOf(NationalRepsFragment(),StateRepsFragment(),CityRepsFragment())
    val titles = arrayListOf("National","State","City")

    override fun getItemCount(): Int {
        return fragments.size
    }

    override fun createFragment(position: Int): Fragment {
        Log.i("MYTAG",fragments[position].toString())
        return fragments[position]
    }

我在如下所示的方法中设置了 ViewPager2 onViewCreated()

private fun setUpTabs() {
        val adapter = RepsViewPagerAdapter(childFragmentManager,lifecycle)
        pager.adapter = adapter
        TabLayoutMediator(tabs, pager, object : TabLayoutMediator.TabConfigurationStrategy {
            override fun onConfigureTab(tab: TabLayout.Tab, position: Int) {
                tab.text = adapter.titles[position]
            }
        }).attach()
    }

我尝试过的事情包括:

  • 将适配器更改FragmentManagersupportFragmentMangerparentFragmentManager

  • 更改FragmentStateAdaperto的构造函数参数FragmentActivity并在宿主 Fragment 中创建实例requireActivity()

  • 提供我想在托管片段中显示的片段的实例

  • 记录fragments[position]何时createFragment()调用的结果。这证实了createFragment单击选项卡时正在调用

带有选项卡的主机 Fragment 的图片不显示子 Fragments(REPS FRAGMENT 是主机布局)

4

0 回答 0