版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36707431/article/details/78898750
解决TabLayout + ViewPager + Fragment 的预加载问题:
解决方法:
1.在每个Fragment里面定义一个方法:用来做请求数据
2.通过ViewPager滑动事件来加载数据
①:设置首次选中的tab页,并调用该页定义的请求数据的方法
②:在ViewPager的滑动事件里,通过选中的位置(position),去做网络请求
//默认选中的tab 并加载该tab页的数据
viewpager.currentItem = 1
fragmentList[1].getData()
viewpager.addOnPageChangeListener(object :ViewPager.OnPageChangeListener{
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
}
override fun onPageSelected(position: Int) {
fragmentList[position].getData()
}
})