翻译(幻灯片)动画不工作的android

时间:2014-12-24 07:50:30

标签: android android-fragments

在我的应用程序中,我想要的是按钮单击我想要滑动一个片段,然后再单击滑出片段。我的代码滑动片段正在工作,但滑动过渡不起作用.. < / 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();
        }
    }

1 个答案:

答案 0 :(得分:0)

当你正在使用xFraction时(在我的代码中,它只是xFraction而不是getXFraction),我相信你只需要在0和1之间设置动画(单位是屏幕宽度)。将后者设置为100会导致移动对象100x的屏幕宽度。 Slide down正在运行(但仅适用于特定的屏幕尺寸),因为在这种情况下,您使用的是yTranslate,其单位为像素。在这种情况下,您最好使用从0到1设置的yFraction。正如其他人评论的那样,如果所有其他方法都失败了,请在将slide in添加到集合之前将其作为独奏动画进行测试