首页 > 解决方案 > 在选项卡布局片段中未在 androidX 中显示其布局

问题描述

我有一个选项卡布局,其中包含五个片段,但是当我单击选项卡时,不显示片段布局。在我的适配器中,我扩展了具有 FragmentManager 和可变行为的 FragmentPagerAdapter。

class ViewPagerAdapter(@NonNull fm:FragmentManager, behaviour:Int):
    FragmentPagerAdapter(fm, behaviour) {

    private val tabs:Array<Fragment> = arrayOf(
        Category1Fragment(),
        Category2Fragment(),
        Category3Fragment(),
        Category4Fragment(),
        Category5Fragment()
    )

    @NonNull
    override fun getItem(position: Int): Fragment {
        return tabs[position]
    }

    override fun getCount(): Int {
        return tabs.size
    }

    @Nullable
    override fun getPageTitle(position: Int): CharSequence? {
        return when (position) {
            0 -> "Bags"
            1 -> "Watches"
            2 -> "Shoes"
            3 -> "Glasses"
            4 -> "Audio"
            else -> null
        }
    }
}

在我的活动中,我通过 viewpager 调用了适配器,但是当我调试时告诉我适配器为空,这是我的活动代码:

val adapter = ViewPagerAdapter(supportFragmentManager, tab_layout.selectedTabPosition)
val viewPager = findViewById<ViewPager>(R.id.view_pager)
viewPager.adapter = adapter
val tab = findViewById<TabLayout>(R.id.tab_layout)
tab.setupWithViewPager(view_pager)
        // -------------------------------------------------------------------------------- //

tab.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
            override fun onTabReselected(p0: TabLayout.Tab?) {

            }

            override fun onTabUnselected(p0: TabLayout.Tab?) {

            }

            override fun onTabSelected(p0: TabLayout.Tab?) {
                viewPager.currentItem = tab.selectedTabPosition
            }

})

在以前的 android 版本中,我做了同样的事情,但在 androidX 中,情况有所不同。我也尝试使用 ViewPager2,但它令人困惑。任何帮助表示赞赏!

标签: androidkotlinandroid-viewpagerandroid-tablayout

解决方案


推荐阅读