【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)

简介:

由于没有找到嵌套FragmentActivity的方法,只好打算用不同的FragmentPagerAdapter来动态切换ViewPager的,如下:

     /**
     * 首页切换的三个界面
     
*/
     private FragmentPagerAdapter mPagerAdapter1 =  new FragmentPagerAdapter(getSupportFragmentManager()) {

        @Override
         public Fragment getItem( final  int position) {
             switch (position) {
             case 1:
                 return  new Fragment1();
             case 2:
                 return  new Fragment2();
             default:
                 return  new Fragment3();
            }
        }

        @Override
         public  int getCount() {
             return 3;
        }

    };

     private FragmentPagerAdapter mPagerAdapter2 =  new FragmentPagerAdapter(getSupportFragmentManager()) {

        @Override
         public Fragment getItem( final  int position) {
             switch (position) {
             case 1:
                 return  new Fragment4();
             case 2:
                 return  new Fragment5();
             default:
                 return  new Fragment6();
            }
        }

        @Override
         public  int getCount() {
             return 3;
        }

    };

然后很自然的想用ViewPager的setAdapter动态设置来切换, 结果发现不起作用!!莫有办法,只好先把Fragment清理一下,如下:

     public  void switchViewPages(FragmentPagerAdapter mAdapter,  int[] tabs) {
         if (mViewPager.getAdapter() !=  null) {
            FragmentManager fm = getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Bundle bundle =  new Bundle();
             int index = mViewPager.getAdapter().getCount();
            String key = "index";
             while (index >= 0) {
                bundle.putInt(key, index);
                ft.remove(fm.getFragment(bundle, key));
                index--;
            }
            ft.commit();
        }
        mViewPager.setAdapter(mAdapter);

查看了一下FragmentManager的源码,学会了getFragmen的用法,这个方法方便通过索引取Fragment。

本文转自博客园农民伯伯的博客,原文链接:【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2),如需转载请自行联系原博主。


相关文章
Android Studio App自定义控件中视图的构造和测量方法讲解及实战(附源码 实现下拉刷新功能 超详细必看)
Android Studio App自定义控件中视图的构造和测量方法讲解及实战(附源码 实现下拉刷新功能 超详细必看)
111 1
【React工作记录三十五】ant design中默认回调加入参数
【React工作记录三十五】ant design中默认回调加入参数
69 0
Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fragment中的使用 ...
1773 0
android Jetpack组件Navigation导航组件--组件间跳转、组件间传值功能实现
android Jetpack组件Navigation导航组件--组件间跳转、组件间传值功能实现
1054 0
android Jetpack组件Navigation导航组件--组件间跳转、组件间传值功能实现
iOS UIPageControl(分页控制器) 用法总结
iOS UIPageControl(分页控制器) 用法总结
707 0
Android项目实战(四):ViewPager切换动画(3.0版本以上有效果)
原文:Android项目实战(四):ViewPager切换动画(3.0版本以上有效果) 学习内容来自“慕课网” 一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换的时候添加切换动画效果 先看布局文件 activity_main.
1002 0
基于Android官方Paging Library的RecyclerView分页加载框架
基于Android官方Paging Library的RecyclerView分页加载框架 我之前写了一篇RecyclerView分页加载机制的文章,是基于Android官方的AsyncListUtil实现的,详情见附录文章1。
3524 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等