簡體   English   中英

翻譯(滑入)動畫無法正常工作

[英]Translate(Slide in) animation not working android

在我的應用程序中,我想要的是在按鈕上單擊我要滑入片段,然后再次單擊以滑出片段。我將片段向下滑動的代碼有效,但過渡過渡不起作用..

向上滑動

<?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();
        }
    }

當您使用xFraction (在我的代碼中,它只是xFraction而不是getXFraction )時,我相信您只需要在0到1之間設置動畫(單位是屏幕寬度)。 將后者設置為100會導致移動對象是屏幕寬度的100倍。 Slide down有效(但僅適用於特定的屏幕尺寸),因為在這種情況下,您使用的是yTranslate ,其單位是像素。 在這種情況下,最好使用yFraction set(從0到1)。正如其他人所評論的那樣,如果其他所有方法均失敗,請在將slide in添加到集合之前將其作為單獨動畫進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM