我尝试使用新的 android 兼容性包将片段包含到我的项目中。
我试图在添加新片段时包含过渡动画。这只是我的动画作品之一。 In 动画有效,但 Out 动画无效。
我在某处读到这是兼容性包中的一个错误。但我还了解到该错误已在兼容性包的第三版中修复。谁能帮我解决这个问题
动画中
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/anticipate_interpolator"
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="100%"
android:toYDelta="0%"
android:duration="1000"/>
输出动画
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0"
android:toXDelta="0"
android:zAdjustment="top"
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="1000"/>
这是我用来添加片段的代码
newFragment = new HelloWorldFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.bottom_top_animation, R.anim.top_bottom_animation);
ft.add(R.id.outer_layout, newFragment);
ft.addToBackStack(null);
ft.commit();
这在当前版本的库中有效,但它之前肯定被破坏了。你可以使用这样的东西:
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_up, R.anim.slide_down, R.anim.slide_up, R.anim.slide_down)
.add(R.id.fragment_container, new SomeFragment(), FRAGMENT_TAG)
.addToBackStack(FRAGMENT_TAG)
.commit();
其中 R.anim.slide_up 是您的入动画,R.anim.slide_down 是您的出动画。 setCustomAnimations 的第二对参数(3 和 4)允许您指定弹出后退堆栈的弹出/弹出动画(例如,当用户按下返回时,片段将使用第四个参数指定的动画进行动画处理)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)