2020-01-13ViewPager2的Fragment懒加载

一、ViewPager2需要使用FragmentStateAdapter

  • 不会调用Fragment的setUserVisibleHint(在Android X中已经被废弃),所以不能依靠setUserVisibleHint 来判断Fragment是否可见。
  • FragmentStateAdapter 会自动销毁不再用的Fragment(打log发现销毁倒数第三个),如果需要 首次加载后不再进行接口请求,则需要设置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()
}

//设置offscreenPageLimit 为列表总数
vp_node.offscreenPageLimit = nodeList.size

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容