Во вкладке макет фрагментов не отображается их макет в androidX - PullRequest
0 голосов
/ 07 января 2020

У меня есть макет вкладок, в который я включил пять фрагментов, но когда я нажимаю на вкладки, макет фрагментов не отображается. В моем адаптере я расширил FragmentPagerAdapter, который имеет FragmentManager и переменное поведение.

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, но это сбивало с толку. Любая помощь приветствуется!

...