一峻呛、ViewPager2需要使用FragmentStateAdapter
-
不會(huì)調(diào)用Fragment的setUserVisibleHint(在Android X中已經(jīng)被廢棄)骇陈,所以不能依靠setUserVisibleHint 來判斷Fragment是否可見运授。
-
FragmentStateAdapter 會(huì)自動(dòng)銷毀不再用的Fragment(打log發(fā)現(xiàn)銷毀倒數(shù)第三個(gè)),如果需要 首次加載后不再進(jìn)行接口請(qǐng)求剖膳,則需要設(shè)置ViewPager的offscreenPageLimit
/**
* Created by Yangxy on 2020-01-13
* description --
*/
abstract class LazyFragment : Fragment() {
private var isFirstLoad = true
override fun onResume() {
super.onResume()
if (isFirstLoad) {
isFirstLoad = false
lazyLoad()
}
}
abstract fun lazyLoad()
}
//設(shè)置offscreenPageLimit 為列表總數(shù)
vp_node.offscreenPageLimit = nodeList.size