fragment- Fragment already added

问题描述

Fragment already added
重点代码如下:一下代码已经完整执行,但是还是报了java.lang.IllegalStateException: Fragment already added重复添加的错误,求大神解决啊!
@Override
    public Object instantiateItem(ViewGroup container, int position) {
//      System.out.println("instantiateItem...............");
        // 得到缓存的fragment
        Fragment fragment = (Fragment) super.instantiateItem(container,
                position);
        // 得到tag
        String fragmentTag = fragment.getTag();
        if (fragmentFlags.get(position % fragmentFlags.size())) {
            System.out.println("进入instantiateItem该方法了");
            FragmentTransaction beginTransaction = fm.beginTransaction();
            // 移除旧的fragment
            beginTransaction.remove(fragment);
            // 换成新的fragment
            fragment = mFragments.get(position);
            // 添加新fragment时必须用前面获得的tag
            beginTransaction.add(container.getId(), fragment, fragmentTag);
            beginTransaction.attach(fragment);
            beginTransaction.commit();
            //复位更新标志
            fragmentFlags.set(position, false);
        }
        return fragment;
    }

解决方案

beginTransaction.add(container.getId(), fragment, fragmentTag);
//beginTransaction.attach(fragment);,已经添加了,不用再绑了

解决方案二:

http://blog.csdn.net/leeo1010/article/details/37934987

解决方案三:

您好博主,您的问题解决了吗?我也出了和你同样的问题

时间: 2024-08-15 08:28:52

fragment- Fragment already added的相关文章

android-把ViewPager 从一个fragment切换到另一个fragment中

问题描述 把ViewPager 从一个fragment切换到另一个fragment中 Viewpager 中有两个pages,在每一个 fragment中,我放入一个按钮到switching fragment中,但是如果我改变方向,switching不能运行.对于switching fragment,我使用的是 OnChangePageButtonClick 接口.为什么会出现这种情况呢?ViewPager Activity: public class ViewPagerMusic extend

Android使用Fragment来实现ViewPager的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信

以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3364728.html 我前两天写过一篇博客<Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信>(http://www.cnblogs.com/tiantianbyconan/p/3360938.html),实现了Tab切换时保留当前Fragment状态,并在切换前自动回调onPause()方法,在切

【Android】保存Fragment切换状态

前言 一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com    正文 一.应用场景 1.不使用ViewPager 2.不能用replace来切换Fragment,会导致Fragment释放(调用onDestroyView)   二.实现 1.xml <LinearL

Android的Fragment(碎片) 详解

Fragment(碎片)将Activity拆分成多个完全独立封装的可重用的组件, 每个组件包含独立的生命周期和UI布局. Fragment是独立的模块, 可以在正在显示的Activity中添加\删除\更换Fragment; Fragment需要分配相应的UI, 不需要在manifest.xml进行注册, 因为Fragment的生命周期依赖于Activity. Fragment的生命周期: 使用Fragment构建Activity UI的优势是可灵活地, 动态地从一个活动的Activity上添加或

Android中嵌套Fragment无法接收onCreateOptionsMenu事件的问题

嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用. 补充说明: 如果通过缓存Fragment手动调用二级Fragment,可能会出现莫名其妙的问题,比如更多Menu不显示. 解决办法: 在一级Fragment中添加Menu,可以在一级onOptionsItemSelected中手动调用二级的此方法来处理相关事件. 示例代码: @Override public void onCreateOptionsMenu(Me

Android:Fragment真正意义上的onResume和onPause

前言 Fragment虽然有onResume和onPause的,但是这两个方法是Activity的方法,调用时机也是与Activity相同,和ViewPager搭配使用这个方法就很鸡肋了,根本不是你想要的效果,这里介绍一种方法. 继承setUserVisibleHint方法: @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser);

Android基础之使用Fragment适应不同屏幕和分辨率

以下是对Fragment的使用进行了详细的分析介绍,需要的朋友可以过来参考下   最近事情很忙,一个新项目赶着出来,但是很多功能都要重新做,一直在编写代码.Debug.今天因为一个新程序要使用Fragment来做,虽然以 前也使用过Fragment,不过没有仔细研究,今天顺道写篇文章记录一下Fragment的使用.这文章主要参考了Android官网的介绍. Fragment是Android3.0后增加的新控件,有点类似于Activity组件,也是用来承载各种View元素.Google增加这个玩

【Andorid X 项目笔记】嵌套Fragment的使用(5)

前言  之前的文章有介绍ActivityGroup,不少人问嵌套使用的问题,同样的需求在Fragment中也存在,幸好在最新的Android support 包已经支持这一特性!这里就跳过Fragment的介绍,需要注意的是TabActivity已经被标记为弃用(deprecated).   声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://www.cnblogs.com/over140/    正文 一.准备 关于最新的A

传递数据给Fragment的方法

原文:http://stackoverflow.com/questions/7149802/how-to-transfer-some-data-to-another-fragment Use a Bundle. Here's an example: Fragment fragment = new Fragment(); Bundle bundle = new Bundle(); bundle.putInt(key, value); fragment.setArguments(bundle); B

Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法_Android

前言: Fragment也可以使用startActivityForResult方法去打开一个Activity,然后在其onActivityResult方法中处理结果,可是当Fragment嵌套的时候,由于FragmentActivity的BUG导致只会回调最外那层Fragment的onActivityResult方法,于是乎当前Fragment就收不到结果了. BUG分析: 解决这个问题之前我们先通过源码分析一下是什么原因导致的,以22.2.1版本的support-v4库为例 我们先从Fragm