安卓中Viewpager+BottomNavigationBar+fragment + 对fragment做缓存处理

本文介绍了如何在Android应用中结合ViewPager、BottomNavigationView和Fragment实现页面切换,并通过使用HashMap进行Fragment缓存,避免滑动时重复创建。首先,创建一个管理Fragment的类,使用HashMap存储已创建的Fragment实例。接着,定义一个BaseFragment作为抽象基类,规定子类需要实现的方法。展示了一个具体的Fragment实例,同时添加了BottomNavigationView的相关依赖。最后,给出了MainActivity的布局文件配置。
摘要由CSDN通过智能技术生成

运行图

 

总体结构

首先创建一个Fragment的创建的管理类,用一个缓存的HashMap来避免当左右滑动fragment时重复创建fragment

public class FragmentCreator {
    @SuppressLint("UseSparseArrays")
    private static Map<Integer, BaseFragment> sCache = new HashMap<>();
    private static final int INDEX_MAIN_PAGE = 0;
    private static final int INDEX_TAKE_OUT = 1;
    private static final int INDEX_FIND = 2;
    private static final int INDEX_MINE = 3;
    //有几个fragment
    public static final int INDEX_NUM = 4;


    public static BaseFragment getFragment(int index){
        //先从缓存当中去取
        BaseFragment baseFragment = sCache.get(index);
        if (baseFragment != null){
            return baseFragment;
        }

        switch (index){
            case INDEX_MAIN_PAGE:
                //向上转型,根据需求来决定转型为什么样的,体现了多态
                baseFragment = new MainFragment();
                break;
            case INDEX_TAKE_OUT:
                baseFragment = new TakeoutFragment();
                break;
            case INDEX_FIND:
                baseFragment = new FindFragment();
                break;
            case INDEX_MINE:
                baseFragment = new MineFragment();
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值