5

タブを持つアクションバーを使用しています。各タブはフラグメントです。タブをすばやく切り替える場合を除いて、すべてが優れています。高速切り替えを行うと、次のバグが発生します。

java.lang.IllegalStateException: Recursive entry to executePendingTransactions
at android.support.v4.app.FragmentManagerImpl.execPendingActions(Unknown Source)
at android.support.v4.app.FragmentManagerImpl$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)

これがOnTapSelectedの私のコードです

if (mFragment == null) {

    mFragment = (SherlockFragment) SherlockFragment.instantiate(mActivity, mClass.getName(), mArgs);
    ft.add(android.R.id.content, mFragment, mTag);


} else {


    ft.attach(mFragment);
}

これを修正する方法はありますか?または、そうでない場合、アプリがクラッシュしないように、少なくともこの例外をキャッチするにはどうすればよいですか (try/catch をどこに置くかなど)。

ありがとうございました

4

1 に答える 1

3

attach を使用する代わりに、show/hide を使用してみてください。すべてのフラグメントへの参照が必要になりますが、それらをすべて追加する場合は、正しいフラグメントを表示し、それを修正する可能性のある残りを非表示にします。

于 2012-10-20T05:55:02.307 に答える