在我的应用程序中,我想要的是按钮单击我想要滑动一个片段,然后再单击滑出片段。我的代码滑动片段正在工作,但滑动过渡不起作用.. < / p>
向上滑动
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="getXFraction"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="1000"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
向下滑动
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="translationY"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="1280"
android:duration="1000"/>
代码
private void toggleList() {
Fragment f = getFragmentManager()
.findFragmentByTag(LIST_FRAGMENT_TAG);
if (f != null) {
getFragmentManager().popBackStack();
} else {
getFragmentManager().beginTransaction()
.setCustomAnimations(R.animator.slide_up,
R.animator.slide_down,
R.animator.slide_up,
R.animator.slide_down)
.add(R.id.frag_container, new frag(),
LIST_FRAGMENT_TAG
).addToBackStack(null).commit();
}
}
答案 0 :(得分:0)
当你正在使用xFraction
时(在我的代码中,它只是xFraction
而不是getXFraction
),我相信你只需要在0和1之间设置动画(单位是屏幕宽度)。将后者设置为100会导致移动对象100x的屏幕宽度。 Slide down
正在运行(但仅适用于特定的屏幕尺寸),因为在这种情况下,您使用的是yTranslate
,其单位为像素。在这种情况下,您最好使用从0到1设置的yFraction
。正如其他人评论的那样,如果所有其他方法都失败了,请在将slide in
添加到集合之前将其作为独奏动画进行测试