Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段动画异常_Android_Android Fragments_Illegalstateexception - Fatal编程技术网

Android 片段动画异常

Android 片段动画异常,android,android-fragments,illegalstateexception,Android,Android Fragments,Illegalstateexception,我在应用程序中有两个片段。切换它们的代码: public class MainActivity extends FragmentActivity{ Fragment1 fragment1; Fragment2 fragment2; FragmentManager fragmentManager; FragmentTransaction fragmentTransaction; @Override public void onCreate(

我在应用程序中有两个片段。切换它们的代码:

public class MainActivity extends FragmentActivity{

    Fragment1 fragment1;
    Fragment2 fragment2;


    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.some_layout);

        fragment1 = new Fragment1();
        fragment2 = new Fragment2();

        fragmentManager = getSupportFragmentManager();

        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.fragment_vert_add, R.anim.fragment_vert_remove);
        fragmentTransaction.add(R.id.linear_layout_id, fragment1);
        fragmentTransaction.commit();
    }

    public void changeFragment() {

        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.fragment_vert_add, R.anim.fragment_vert_remove);

        if(fragment1.isAdded())
            fragmentTransaction.replace(R.id.linear_layout_id, fragment2);
        else
            fragmentTransaction.replace(R.id.linear_layout_id, fragment1);
        fragmentTransaction.commit();
    }

}
当我在动画过程中触摸屏幕时:

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: No activity 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1123)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1118)
            at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1927)
            at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1800)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
            at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:456)
            at android.os.Handler.handleCallback(Handler.java:605)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4424)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
            at dalvik.system.NativeStart.main(Native Method)

你能显示活动代码吗?也许可以发布整个堆栈跟踪。试着在UI线程上运行动画,看看这是否能阻止崩溃。我不完全确定“swithes them”是什么意思,但是抛出了一个非法状态异常,因为您试图在片段不处于适当状态时对其进行操作。当调用了
changeFragment()
时,请检查()从该片段调用changeFragment()以替换它