[英]Fragment Transaction Animation not Working in Android 6.0+
我正在使用setCustomAnimations()
方法在Android 6.0.1中完全无效。 发生的所有事情是,片段在整个动画过程中被卡在屏幕的左侧,在屏幕的其余部分上留有空白,然后在没有任何动画的情况下占据了屏幕。 它在所有<6.0版本中均能完美运行。 我正在使用如下方法:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations
(R.anim.slide_in_left, R.anim.slide_out_left, 0, 0);
MyFragment myFragment = new MyFragment();
fragmentTransaction.replace(R.id.fragmentContainer, myFragment,
ResourceUtil.resByName(context, R.string.myFragmentText));
fragmentTransaction.commit();
另外,slide_in_left XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="300"/>
</set>
用这个:
fragmentTransaction.setCustomAnimations(R.anim.anim_appear, R.anim.s_down);
这里更多。
还是行不通? 检查您的xml。 -100%可能会导致问题。
因此,将动画更改为此:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%" android:toXDelta="100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="300"/>
</set>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.