未知的动画名称:objectAnimator。使用九个老机器人。仍然有错误

时间:2013-10-02 08:46:40

标签: android android-layout jar nineoldandroids

我想要使用卡片翻转动画在两个片段之间切换。

这是我的一个动画文件:

<?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(并更改了属性值),它确实做了动画,而不是我想要的更复杂的动画。

有没有人对我可能做错了什么有任何建议?我开始抓住稻草了。

编辑:万一有帮助,这是我的flipCard功能:

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

3 个答案:

答案 0 :(得分:1)

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

还有另一个库https://github.com/kedzie/Support_v4_NineOldAndroids 但请注意“观看动画将不再有用”的警告

答案 1 :(得分:0)

尝试以编程方式进行操作怎么样?

我的答案:How to animate a slide in notification view that pushes the content view down就是一个例子。

如果你移动一个xmlns会发生什么:android =&#34; http://schemas.android.com/apk/res/android"进入集合声明并删除另一个。

答案 2 :(得分:0)

我花了几个小时研究同样的问题然后干了。这个StackOverflow answer提供了一种替代技术(不需要NineOldAndroid)来实现非常好的翻转旋转。