2

カード フリップ アニメーションを使用して交換したい 2 つのフラグメントがあります。

これが私のアニメーションファイルの1つです:

<?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からそのまま引用されています。私は 8 つ以上の SDK を持っているので、強く推奨されるNine Old Androidsライブラリを使用しています。ただし、まだ次のエラーが表示されます: Uknown animation name: objectAnimator. objectAnimator のパッケージを Java ファイルにインポートできるので、JAR ファイルですべてが適切に構成されていると確信できます。以前にobjectAnimatortoを設定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();
    }
4

3 に答える 3

1

Nine Old はフラグメントで動作しません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" の 1 つを set 宣言に移動し、もう 1 つを削除するとどうなりますか。

于 2013-10-02T09:22:01.570 に答える