繁体   English   中英

回收者视图。 对创建的每个项目进行动画处理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM