由于没有找到嵌套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),如需转载请自行联系原博主。

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

  1. Flex 学习笔记 动态设置itemRenderer

    Tree.DataGrid经常要设置自己制定样式或特殊的UI,我们需要呈现器,经常使用外部呈现器(作为项目渲染器使用的自定义组件在MXML或ActionScript编写),我们需要用到itemRend ...

  2. 【Andorid X 项目笔记】禁用ListView的Fling功能(1)

    前言 新的项目正在紧张开发中,初步估计2个月时间开发完成第一版,我负责Android端开发,由于不便过早公布,本系列将命名为"X项目笔记",并于项目结束后最终公布名称.本系列主要记 ...

  3. Vue项目如何动态设置路由meta信息中的title属性值

    场景:编辑.新建页面配置为同一个路由信息,期望不同页面的文档title展示不一样. 目前的配置如下,不能实现需求. 因此,我们需要动态的去设置meta的值.思路:借助Vue Router的路由独享守卫 ...

  4. 动态设置View的宽高、宽高比例(设置ViewPager的高度,宽高比例为2:1)

    利用ViewPager显示banner的时候,一些人会直接写死ViewPager高度,比如在xml布局里面直接写成180dp. 这样的话,每个手机的宽度不同,viewpager里面内容的长宽比就不同, ...

  5. Android动态测量控件高度(Relatelayout,viewpager)并动态设置高度

    int w= View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);int h = View.MeasureSpec.mak ...

  6. Vue项目中如何设置动态的TDK

    TDK是什么 TDK就是网站的标题(title).描述(description)和关键词(keyword) TDK在哪里 上面大佬对TDK的概念解释的很全面,但是在网页中的TDK在哪里呢,作为开发人员 ...

  7. 《BI项目笔记》数据源视图设置

    原文:<BI项目笔记>数据源视图设置 目的 数据源视图是物理源数据库和分析维度与多维数据集之间的逻辑数据模型.在创建数据源视图时,需要在源数据库中指定包含创建维度和多维数据集所需要的数据表 ...

  8. VUE项目中CSS设置动态宽度的方法

    网上找到三种方法: 一.使用cumputed 首先你务必看Vue的官方文档.涉及到的基础知识有: 绑定内联样式的使用 computed的使用 文档写的都是基础使用.那么在项目实战中如何使用,两步就能实 ...

  9. Silverlight学习笔记三(鼠标点击动态画直线|动态设置Ellipse的Canvas.Top与Canvas.Left|动态设置Stroke属性的方法。)...

    我有可能需要把AutoCAD的部分功能搬到浏览器上,先练习一下画直线的方法.如图: MainPage.xaml代码: 大气象 <UserControl x:Class="DrawLin ...

最新文章

  1. 菜菜sklearn——XGBoost(2)
  2. mybatis-plus CRUD及分页查询代码示例
  3. flex 下对齐_Flex 布局教程:语法篇
  4. eclipse问题_Alt+/不给提示,只补充代码问题的解决方案
  5. [Unity] 无脚本导出 Texture 为 PNG
  6. Java经纬度坐标转换到平面坐标
  7. 解决tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm.
  8. 【论文串烧】基于特定实体的文本情感分类总结(PART I)
  9. 发现一篇不错的学习隐马尔可夫模型的文章
  10. dubbo入门级梳理
  11. Hadoop实战之一~Hadoop概述
  12. HTML静态网页练习例子
  13. 生信分析用python还是r_生信分析利器:JupyterLab
  14. php项目部署到服务器
  15. 波兰表达式(Polish Notation)简要介绍
  16. 如何处理Elixir中的异常
  17. java am pm_java – 如何以AM / PM格式显示时间
  18. Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式
  19. MVC模型的简单理解
  20. cppsqlite3获取最后一行内容

热门文章

  1. 动物界的再生一个故事
  2. sublime text 安装Package Control
  3. 3、假设有一个对象数组,想根据某个对象属性对数组进行排序时
  4. 如何顺利度过新人适应期
  5. 引用asp.net母版页后,母版页和内容页的页面事件执行顺序
  6. python3运行报错:TypeError: Object of type 'type' is not JSON serializable解决方法
  7. irobot擦地机器人故障_自己动手修复 iRobot braava380t 电机故障
  8. python server酱_面向回家编程!GitHub标星两万的quot;Python抢票神器”快用起来!...
  9. ios .a文件支持结构合并arm64 armv7 i386 x86_64
  10. SSL/TLS抓包出现提示Ignored Unknown Record