日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Fragment已经被added了导致的异常。

發(fā)布時(shí)間:2023/12/13 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 Fragment已经被added了导致的异常。 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java.lang.IllegalStateException: Fragment already added: ******Effect

出現(xiàn)的原因是commit方法提交是異步的,所以容易出現(xiàn),判斷的時(shí)候是還沒有added的狀態(tài),但是在真的添加的時(shí)候,重復(fù)添加了,其實(shí)就是一個(gè)同步異步的問題。

解決方式其實(shí)就是自己添加一個(gè)tag,每個(gè)fragment一個(gè)tag就可以解決重復(fù)添加導(dǎo)致的異常了。

mAdded = new boolean[]{false, false, false, false, false, false};
private synchronized void setIndexSelected(int index) {
        Logcat.d(TAG, "mIndex " + mIndex + "; index " + index);
        if(mIndex == index){
            return;
        }
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();

        //隱藏
        ft.hide(mFragments[mIndex]);
        //判斷是否添加
        if (index < mFragments.length) {
            if (!mFragments[index].isAdded() && !mAdded[index]) {
                Logcat.d(TAG, "add " + mFragments[index]);
                ft.add(R.id.content, mFragments[index]).show(mFragments[index]);
                mAdded[index] = true;
            } else {
                Logcat.d(TAG, "show " + mFragments[index]);
                ft.show(mFragments[index]);
            }
        }
        ft.commit();
        //再次賦值
        mIndex = index;
    }
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime: java.lang.IllegalStateException: Fragment already added: SoundEffectFragment{acd69f9 #1 id=0x7f0e0205}
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1323)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:675)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:742)
[2017/7/21 10:42:08] 07-21 05:41:00.457  4835  4835 E AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)

總結(jié)

以上是生活随笔為你收集整理的Fragment已经被added了导致的异常。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。