android 片段事务

Posted

技术标签:

【中文标题】android 片段事务【英文标题】:android Fragment Transaction 【发布时间】:2015-08-28 05:25:53 【问题描述】:
FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
        fragmentTransaction.replace(R.id.container, objFragment)
                .commit();

我编写了这段代码用于在事务期间添加动画。这会产生错误:

java.lang.RuntimeException: Unknown animation name: objectAnimator
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)
         at android.app.ActivityThread.access$800(ActivityThread.java:155)
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
         at android.os.Handler.dispatchMessage(Handler.java:102)
         at android.os.Looper.loop(Looper.java:135)
         at android.app.ActivityThread.main(ActivityThread.java:5343)
         at java.lang.reflect.Method.invoke(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:372)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
  Caused by: java.lang.RuntimeException: Unknown animation name: objectAnimator
         at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:126)
         at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:93)
         at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:74)

【问题讨论】:

Fragment : Unknown animation name objectanimator 的可能重复项 【参考方案1】:

我相信您正在尝试在支持片段库中使用objectAnimator,但它是在 Android Api 级别 11 中添加的。

使用

getFragmentManager()

而不是

getSupportFragmentManager()

如果您在 xml 文件中声明对象动画,请务必将其放入 animator 文件夹而不是 anim 文件夹,以告诉 android 使用新的动画框架。

支持片段管理器不支持动画师(仅动画)。异常消息表明您的 xml 资源中的动画格式错误,可能是因为您已将 animator 移动到此错误的 xml(因为它们具有不同的符号)。您需要以正确的方式编写它:http://developer.android.com/guide/topics/graphics/view-animation.html

希望对你有帮助!

【讨论】:

以上是关于android 片段事务的主要内容,如果未能解决你的问题,请参考以下文章

Android 4.4 — 半透明状态/导航栏 — fitSystemWindows/clipToPadding 不能通过片段事务工作

Android从后台堆栈中删除事务

在android中使用带有片段的roboguice的任何简单示例?

Android 片段复制

Android:使用支持片段管理器时复制片段

Android TalkBack 和片段堆栈