Android: What's wrong with my fragment transition animation?
Solution 1
getSupportFragmentManager() means you are using the Compatibility Package for Fragments, I guess. I have the same problem, which is no animation happening at all.
Solution 2
Google has updated the compatibility library and the transitions have been fixed. You guys should update your compatiblity library from the android sdk/avd manager.
Solution 3
I found a cool post here about the Fragment Compatibility library animations issue, i took second approach
..... Call FragmentTransaction.setCustomAnimations(), referencing either animators or animations (depending on whether you're using the compatibility library or not). What is interesting is that setCustomAnimations() affects all fragment transitions added to the transaction after it is called. So you need to call setCustomAnimations() before you want it used, and you can actually setup multiple different custom animations for each part of a transaction (with a call to setCustomAnimations() before each add()/remove()/attach()/detach()/show()/hide()/replace())......
like this
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.push_up_in,R.anim.push_up_out);
ft.commit();
ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.push_up_in,R.anim.push_up_out);
if (fragment1.isHidden()) {
ft.show(fragment1);
} else {
ft.hide(fragment1);
}
ft.commit();
With this i solved the problem for api level 11 hope it works!
Solution 4
If you're using ViewPager
mPager.setOffscreenPageLimit(YourFragmentsSize);
This line solved my problem, hope works for you too. Referanced from this topic
Admin
Updated on June 15, 2022Comments
-
Admin almost 2 years
I just need plain slide in and slide out animation for Fragment transition, below is my code: slide_in_left.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="true"> <translate android:fromXDelta="-100%" android:toXDelta="0%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"> </translate> </set>
slide_out_right.xml:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="700"> </translate> </set>
the code I used:
SomeFragment frag = SomeFragment.newInstance(foo); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right); ft.replace(R.id.the_fragment, frag); ft.addToBackStack(null); ft.commit();
The result looks very stranges, when the transition starts, the current fragment disappears without animation, the entering fragment comes(from left) like a scrolling paper. What's wrong with my animation xml code?
Thanks!
-
alfdev almost 9 yearsi confirm, last google support lib'version does not fix the problem.