android-fragments 选择选项卡时在ViewPage适配器中创建片段

r7knjye2  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(114)

viewPager里面有两个片段。当主片段加载位置权限代码时,第二个片段工作。希望该片段在点击第二个标签时工作。所以我想我需要在选择第二个标签时创建此片段。如何检测并做到这一点?
OurHospitalFragment.kt

viewPager2OurHospital.adapter = adapter
            viewPager2OurHospital.offscreenPageLimit = 1
            TabLayoutMediator(tabLayoutOurHospital, viewPager2OurHospital) { tab, position ->
                when (position) {
                    0 -> tab.text = getString(R.string.list)
                    1 -> tab.text = getString(R.string.map)
                }
            }.attach()

            tabLayoutOurHospital.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
                override fun onTabSelected(tab: TabLayout.Tab?) {
                    tab?.let {
                        viewPager2OurHospital.isUserInputEnabled = tab.position != 1
                    }
                }

                override fun onTabUnselected(tab: TabLayout.Tab?) {
                }

                override fun onTabReselected(tab: TabLayout.Tab?) {
                }
            })

OurHospitalASMViewPagerAdapter.kt

class OurHospitalViewPagerAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) :
    FragmentStateAdapter(fragmentManager, lifecycle) {

    override fun getItemCount(): Int {
        return 2
    }

    override fun createFragment(position: Int): Fragment {
        return when (position) {
            0 -> HospitalListFragment()
            1 -> HospitalMapFragment()
            else -> Fragment()
        }
    }
}
u0njafvf

u0njafvf1#

我写了这样一行代码:

viewPager2OurHospital.offscreenPageLimit = ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT

而不是:

viewPager2OurHospital.offscreenPageLimit = 1

我得到了我想要的。

相关问题