Android - Fragment 内嵌 ViewPager ,ViewPager各个页面使用Fragment第二次进入空白界

直接说解决办法,在activity中创建adapter时fragment管理参数用supportFragmentManager,而在fragment中创建adpater时参数用childFragmentManager分开管理,就可以了。错误原因:我在fragmetn中创建adpater用了activity.supportFragmentManager,自作聪明了。

val adapter = FragmentAdapter<BaseFragment>(supportFragmentManager)
            adapter.addFragment(StationPowerFragment(it), getString(R.string.station_power))
            adapter.addFragment(StationElectricFragment(it.id!!), getString(R.string.station_electric))
            adapter.addFragment(StationLayoutFragment(it), getString(R.string.station_layout))
            adapter.addFragment(StationStatusFragment(it.id!!), getString(R.string.station_status))
            adapter.addFragment(StationSwitchFragment(it.id!!), getString(R.string.station_switch))

//            viewBinding.contentViewPager.offscreenPageLimit = 4 //预加载的页面数量
            viewBinding.contentViewPager.adapter = adapter
val adapter: FragmentAdapter<BaseFragment> = FragmentAdapter(childFragmentManager)
        adapter.addFragment(StatusBeehiveFragment(stationId), getString(R.string.beehive))
        adapter.addFragment(StatusSwarmFragment(stationId), getString(R.string.swarm))
        adapter.addFragment(StatusHoneybeeFragment(stationId), getString(R.string.honeybee))

        viewBinding.viewPager.offscreenPageLimit = 2 //缓存页面个数
        viewBinding.viewPager.adapter = adapter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值