解决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()
}
})