【问题标题】:Unknown animation name: objectAnimator. Using Nine Old Androids. Still getting error未知动画名称:objectAnimator。使用九个旧机器人。仍然出现错误
【发布时间】:2013-10-08 14:45:14
【问题描述】:

我有 2 个片段想要在使用卡片翻转动画之间进行交换。

这是我的一个动画文件:

<?xml version="1.0" encoding="utf-8"?>
<set>
    <!-- Rotate. -->
    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:valueFrom="0"
        android:valueTo="180"
        android:propertyName="rotationY"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:duration="@integer/card_flip_time_full" />

    <!-- Half-way through the rotation (see startOffset), set the alpha to 0. -->
    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:valueFrom="1.0"
        android:valueTo="0.0"
        android:propertyName="alpha"
        android:startOffset="@integer/card_flip_time_half"
        android:duration="1" />
</set>

我有 4 个这样的文件。它们几乎直接取自Google Demo。我的 sdk 至少为 8,因此我使用强烈推荐的 Nine Old Androids 库。但是,我仍然收到以下错误:Uknown animation name: objectAnimator。我可以在我的 java 文件中导入 objectAnimator 的包,所以我很确定我已经使用 JAR 文件正确配置了所有内容。之前我将objectAnimator 设置为translate(并更改了属性值),它确实做了一个动画,只是不是我想要的更复杂的动画。

有人对我可能做错的事情有任何建议吗?我开始抓住稻草了。

编辑:以防万一,这是我的翻转卡功能:

public void flipSalesCard(FragmentManager fm) {
        if (salesShowingBack) {
            salesShowingBack = false;
            Fragment smallSSF = new SmallSalesSectionFragment();
            FragmentTransaction trans = fm.beginTransaction();
            trans.setCustomAnimations(R.anim.card_flip_left_in, R.anim.card_flip_left_out);
            trans.replace(R.id.SalesInfoFragment, smallSSF);
            trans.addToBackStack(null);
            trans.commit();
            return;
        }
        salesShowingBack = true;

        Fragment expandedSSF = new ExpandedSalesSectionFragment();
        FragmentTransaction trans = fm.beginTransaction();
        trans.setCustomAnimations(R.anim.card_flip_right_in, R.anim.card_flip_right_out);
        trans.replace(R.id.SalesInfoFragment, expandedSSF);
        trans.addToBackStack(null);
        trans.commit();
    }

【问题讨论】:

    标签: android android-layout jar nineoldandroids


    【解决方案1】:

    九旧不适用于片段https://github.com/JakeWharton/NineOldAndroids/issues/43

    https://github.com/kedzie/Support_v4_NineOldAndroids 还有另一个库 但请注意警告,因为“查看动画将不再起作用”

    【讨论】:

      【解决方案2】:

      尝试以编程方式进行如何?

      我对@9​​87654321@ 的回答就是一个例子。

      如果您将 xmlns:android="http://schemas.android.com/apk/res/android" 之一向上移动到集合声明中并删除另一个,会发生什么情况。

      【讨论】:

      • 如果我移动它,自动完成将无法识别 objectAnimator。另外,九老机器人的demo里面有,所以我复制了它们。我可以考虑以编程方式进行操作,但希望像 android 示例一样进行操作。我需要卡片翻转,而不仅仅是滑入。
      【解决方案3】:

      我在同一个问题上花费了几个小时,结果却一无所获。 StackOverflow answer 提供了一种替代技术(不需要 NineOldAndroid)来实现翻转旋转,效果非常好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 2021-12-15
        相关资源
        最近更新 更多