簡體   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