NineOldAndroids中的LayoutTransition类..?

时间:2013-03-29 09:19:47

标签: android animation nineoldandroids

我想动画添加视图作为“向下滑动”并将视图移除为ViewGroup中的“向上滑动”。所以我使用了LayoutTransition.class,但minSdk 8不支持LayoutTransition layoutTransition = new LayoutTransition(); AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(getApplicationContext(), R.anim.slide); layoutTransition.setAnimator(LayoutTransition.APPEARING, set); 。所以我发现了这个NineOldAndroids,并且想知道我是否能够实现我想要的东西。

像这样,

{{1}}

2 个答案:

答案 0 :(得分:3)

不幸的是,NineOldAndroids不支持LayoutTransitions,因为它无法在Gingerbread中实现。

答案 1 :(得分:0)

添加没有LayoutTransition的视图时,我还需要设置动画。 我不知道何时开始动画,所以我使用LayoutAnimationController来做 :     

     // A fake AlphaAnimation so that we can know how to start the animation of adding view
      Animation animation = new AlphaAnimation(0, 0);
        animation.setDuration(1);
        animation.setFillAfter(true);
        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
}

@Override public void onAnimationEnd(Animation animation) { // start the animation here startAddingViewAnimation(); } @Override public void onAnimationRepeat(Animation animation) { } }); ViewGroup viewroot = findViewById(R.id.viewroot); LayoutAnimationController layoutAnimationController = new LayoutAnimationController(animation); viewRoot.setLayoutAnimation(layoutAnimationController); viewRoot.addView(btn);

设置LayoutAnimationController以通知我视图已添加并完成绘制。然后我可以通过nineoldanimator开始动画。