Androidx的viewpager加Fragment不用自己写懒加载了,动态替换当前Fragment

某天升级到AndroidX以后,适配一下,然后发现一个问题

怎么过时了还,然后随手点进去看看咋回事,然后就是

 

仔细一看这个两个BEHAVIOR根据自己的工具英语一see,这不跟以前的懒加载很是一样的东西么,说不如做,直接来个demo试验一下

确实是那么回事儿,so以后的懒加载就可以不用自己写了

注意版本要升级到1.1.0才会有这个标志

动态替换Fragment的问题,直接看代码

class IndexPagerAdapter(
    fm: FragmentManager,
    private val mFragments: List<Fragment>,
    private val mTitls: List<CharSequence>
) :
    FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
    override fun getItem(position: Int): Fragment {
        return mFragments[position]
    }

    override fun getCount(): Int {
        return mFragments.size
    }

    override fun getItemId(position: Int): Long {
        //注意一定要重写
        return mFragments[position].hashCode().toLong()
    }

    override fun getItemPosition(`object`: Any): Int {
        //第一种方法是直接返回POSITION_NONE
        //第二种就是先判断是否发生了修改再判断
        val index = mFragments.indexOf(`object`)
        if (index == -1) {
            return PagerAdapter.POSITION_NONE
        }
        return PagerAdapter.POSITION_UNCHANGED
    }

    override fun getPageTitle(position: Int): CharSequence? {
        return mTitls[position]
    }
}

Demo地址

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值