2

我有 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,所以我使用的是强烈推荐的九老 Android库。但是,我仍然收到以下错误:Uknown animation name: objectAnimator. 我可以在我的 java 文件中导入 objectAnimator 的包,所以我很确定我已经使用 JAR 文件正确配置了所有内容。早些时候我将其设置objectAnimatortranslate(并更改了属性值),它确实做了一个动画,只是不是我想要的更复杂的动画。

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

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

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

3 回答 3

1

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

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

于 2013-10-22T16:44:13.347 回答
0

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

于 2013-11-19T18:04:53.480 回答
0

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

我的回答是:如何在通知视图中为幻灯片设置动画以将内容视图向下推就是一个例子。

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

于 2013-10-02T09:22:01.570 回答