简体   繁体   English

如何设置片段的翻译动画?

[英]How to set translate animation for fragment?

I am using a custom animation for Fragments transactions in my application but I get an application force close with this error in gradle: 我正在为我的应用程序中的Fragments事务使用自定义动画,但是由于gradle中的此错误,我得到了一个应用程序强制关闭:

03-05 22:25:58.185 14497-14497/ir.aftabeshafa.shafadoc E/AndroidRuntime: FATAL EXCEPTION: main
Process: ir.aftabeshafa.shafadoc, PID: 14497
java.lang.RuntimeException: Unknown animator name: translate
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java)
at android.app.FragmentManagerImpl.loadAnimator(FragmentManager.java)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java)
at android.app.FragmentManagerImpl.removeFragment(FragmentManager.java)
at android.app.BackStackRecord.run(BackStackRecord.java)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java)
at android.os.Handler.handleCallback(Handler.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)

slideinanimation.xml : slideinanimation.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="700"
        android:fromXDelta="0%"
        android:fromYDelta="-100%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

and slideoutanimation.xml : slideoutanimation.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="700"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="-100%" />
</set>

How can I fix this? 我怎样才能解决这个问题?

I've found my questions answer. 我已找到问题的答案。 for fragments you should use objectAnimator in animation XML file like this: 对于片段,应在动画XML文件中使用objectAnimator ,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="yFraction"
        android:valueFrom="-1000"
        android:valueTo="0" />

</set>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM