【问题标题】:LayoutTransition Class in NineOldAndroids..?NineOldAndroids 中的 LayoutTransition 类..?
【发布时间】:2015-09-05 16:11:51
【问题描述】:
我想在ViewGroup 中将视图添加为“向下滑动”并将视图删除为“向上滑动”。所以我使用了LayoutTransition.class,但它不支持minSdk 8。所以我找到了这个NineOldAndroids,并想知道我是否可以使用它来实现我想要的。
类似的,
LayoutTransition layoutTransition = new LayoutTransition();
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(getApplicationContext(),
R.anim.slide);
layoutTransition.setAnimator(LayoutTransition.APPEARING, set);
【问题讨论】:
标签:
android
animation
nineoldandroids
【解决方案1】:
很遗憾 NineOldAndroids 不支持 LayoutTransitions,因为它无法在 Gingerbread 中实现。
【解决方案2】:
在添加没有 LayoutTransition 的视图时,我还需要设置动画。
我不知道什么时候开始动画,所以我使用 LayoutAnimationController 来做
:
// 一个假的 AlphaAnimation 让我们知道如何开始添加视图的动画
动画动画 = new AlphaAnimation(0, 0);
动画.setDuration(1);
动画.setFillAfter(true);
animation.setAnimationListener(new Animation.AnimationListener() {
@覆盖
public void onAnimationStart(动画动画) {
}
@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启动动画了。