[英]How to animate views inside the Recycler View
我有一个可扩展的RecyclerView节 ,在其中单击某个特定项目会在其下方添加一些项目。
部分标题行具有向下箭头,如果展开,则将其更改为向上箭头。 默认的动画会淡化整个节标题行,我想是的。
单击该行时,如何选择将箭头动画180度,而不仅仅是将图像源更改为其他图标。 更为合适的问题是: 在适配器内的哪里更新此视图? 哪种方法? 当我尝试在onCreateView()
或onBindViewHolder()
使用ObjectAnimators时,它并不总是有效。
有更好的方法/解决方案吗?
尝试使用
animateListItem(view, prevPosition < position);
要么
setLayoutAnimation
在适配器的getView
或onBindViewHolder方法中:
public static void setLayoutAnimation(Activity activity, ListView listView, Integer anim, int duration) {
anim = (anim == null || anim == 0 ) ? R.anim.abc_slide_in_bottom : anim;
Animation animation = AnimationUtils.loadAnimation(activity, anim);
duration = duration <= 0 ? 500 : duration;
animation.setDuration(duration);
LayoutAnimationController controller = new LayoutAnimationController(animation, 1.0f);
listView.setLayoutAnimation(controller);
}
public static Animation slideFromTop, slideFromBottom;
public static void initAnim(Activity activity)
{
slideFromTop = AnimationUtils.loadAnimation(activity, R.anim.abc_slide_in_top);
slideFromTop.setDuration(500);
slideFromBottom = AnimationUtils.loadAnimation(activity, R.anim.abc_slide_in_bottom);
slideFromBottom.setDuration(500);
}
public static void animateListItem(Activity activity, View view, boolean slideInBottom) {
try {
if (slideInBottom)
{
view.startAnimation(slideFromBottom);
}
else
{
view.startAnimation(slideFromTop);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.