setCustomAnimations弹出动画在ListView中不起作用

时间:2014-12-29 21:35:51

标签: android android-fragments android-listview android-animation android-fragmentactivity

我有2个片段,例如以下example

我的一个片段包含一个ListView。 当列表很小2-3项时,流行动画效果很好R.animator.card_flip_left_in, R.animator.card_flip_left_out

但是,当列表开始增长并变大时,动画无效,您只看到片段改变了视图。

我尝试在OnCreateView和OnResume中设置适配器但没有成功... 我在这里缺少什么?

OnCreate FragmentActivity

  if (savedInstanceState == null) {
        // If there is no saved instance state, add a fragment representing the
        // front of the card to this activity. If there is saved instance state,
        // this fragment will have already been added to the activity.
        getFragmentManager()
                .beginTransaction()
                .add(R.id.container, new ListFragment())
                .commit();
    } else {
        mShowingBack = (getFragmentManager().getBackStackEntryCount() > 0);
    }

    // Monitor back stack changes to ensure the action bar shows the appropriate
    // button (either "photo" or "info").
    getFragmentManager().addOnBackStackChangedListener(this);}

FlipCard功能

 public void flipCard() {
    if (mShowingBack) {
       // getFragmentManager().popBackStack();
        return;
    }

    // Flip to the back.

    mShowingBack = true;

    // Create and commit a new fragment transaction that adds the fragment for the back of
    // the card, uses custom animations, and is part of the fragment manager's back stack.

    getFragmentManager()
            .beginTransaction()
            .setCustomAnimations(
                    R.animator.card_flip_right_in, R.animator.card_flip_right_out,
                    R.animator.card_flip_left_in, R.animator.card_flip_left_out)
            .replace(R.id.container, new RegFragemnt())
            .addToBackStack(null)
            .commit();

    mHandler.post(new Runnable() {
        @Override
        public void run() {
            invalidateOptionsMenu();
        }
    });
}

card_flip_left_in

         

<!-- Rotate. -->
<objectAnimator
    android:valueFrom="-180"
    android:valueTo="0"
    android:propertyName="rotationY"
    android:interpolator="@android:interpolator/accelerate_decelerate"
    android:duration="@integer/card_flip_time_full" />

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

card_flip_left_out

         

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

0 个答案:

没有答案