I'm trying to do a flipping card animation between two fragment like in --> Displaying Card Flip Animations by using:
private void switchFragment(Fragment fragment) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
if ((fragment != null) && !(fragment.equals(currentFragment))) {
if (transactionByMenu) {
fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,
android.R.anim.fade_out);
} else {
fragmentTransaction.setCustomAnimations(
R.animator.card_flip_right_in,
R.animator.card_flip_right_out);
}
Fragment nextFragment = fragment;
fragmentTransaction.hide(currentFragment);
fragmentTransaction.show(nextFragment);
currentFragment = nextFragment;
}
fragmentTransaction.commit();
}
The transaction in if(transactionByMenu){...}
works but not in else{...}
I'd check my libs and stuff and i'm currently target higher than api 11
but I still have this error message:
05-22 11:32:34.706: E/AndroidRuntime(6801): FATAL EXCEPTION: main
05-22 11:32:34.706: E/AndroidRuntime(6801): java.lang.RuntimeException: Unknown animation name: objectAnimator
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:124)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:114)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:91)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:72)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.support.v4.app.FragmentManagerImpl.loadAnimation(FragmentManager.java:710)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.support.v4.app.FragmentManagerImpl.hideFragment(FragmentManager.java:1187)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:610)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:420)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.os.Handler.handleCallback(Handler.java:725)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.os.Handler.dispatchMessage(Handler.java:92)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.os.Looper.loop(Looper.java:137)
05-22 11:32:34.706: E/AndroidRuntime(6801): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-22 11:32:34.706: E/AndroidRuntime(6801): at java.lang.reflect.Method.invokeNative(Native Method)
05-22 11:32:34.706: E/AndroidRuntime(6801): at java.lang.reflect.Method.invoke(Method.java:511)
05-22 11:32:34.706: E/AndroidRuntime(6801): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-22 11:32:34.706: E/AndroidRuntime(6801): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-22 11:32:34.706: E/AndroidRuntime(6801): at dalvik.system.NativeStart.main(Native Method)
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="package.stage.stackoverflow"
android:versionCode="3"
android:versionName="2.0.1" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<permission
android:name="package.stage.stackoverflow.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="package.stage.stackoverflow.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/SampleTheme" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name="package.stage.stackoverflow.MyFragmentActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my Key" />
</application>
</manifest>
It's been two day I'am stuck with this, thank you in advance.
I believe you are trying to use objectAnimator in support fragments library, but it was added in Android Api level 11.
If you declared your object animation in an xml file, be sure to put it into the animator folder and not the anim folder to tell android to use the new animation framework.
Here from the documentation :