[英]Recycler view. Animate each item on create
我想为每个视图设置动画。 当前,所有项目在创建时都会一起动画。 而且只有当我滚动新添加的项目时才设置动画,以便我要在回收器视图中对初始创建的项目进行动画处理,这是我在回收器视图适配器中的代码
private void setAnimation(View viewToAnimate, int position)
{
// If the bound view wasn't previously displayed on screen, it's animated
if (position > lastPosition)
{
Animation animation = AnimationUtils.loadAnimation(context, R.anim.slide_left);
animation.setDuration(1000);
viewToAnimate.startAnimation(animation);
lastPosition = position;
}
}
@Override
public void onBindViewHolder(RecyclerViewHolder holder, int position) {
Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/gothamlight.ttf");
NavigationData navigationData = arrayList.get(position);
holder.NavigationImage.setImageResource(navigationData.getImg_res());
holder.NavigationTitle.setText(navigationData.getNavigationTitle());
holder.NavigationTitle.setTypeface(tf);
setAnimation(holder.Container, position);
}
尝试增加动画文件中的持续时间,例如您的幻灯片 。
slide_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="1000"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
我发现的解决方案是使用默认动画持续时间声明一个持续时间int,而内部设置的动画中我的持续时间=持续时间+300。而且效果很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.