簡體   English   中英

如何為 Recyclerview 的特定項目設置動畫?

[英]How to animate specific item of Recyclerview?

這是回收商項目的圖片: 在此處輸入圖片說明

我想要當我點擊加號按鈕時添加了動畫的新項目這是一個代碼

viewHolder.cart_plus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            menu.add(position+1,menu.get(position));
            Singleton.getInstance().getMenuExtraArrayList().add(position+1,menu.get(position));
            ((CartActivity)context).cartIconCounter.setText( Singleton.getInstance().getMenuExtraArrayList().size()+"");
            ((CartActivity)context).setPrice();
            notifyDataSetChanged();
            setAnimation(position,viewHolder.itemView);

        }
    });

這是 setAnimationMethod

private void setAnimation(int psition, View itemView) {
    if (psition > lastPosition)
    {
        Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
        itemView.startAnimation(animation);
        lastPosition = psition;
    }
}

並且 lastposition 的初始值為 -1

您在這里通過調用notifyDataSetChanged()所做的是告訴回收器視圖您的所有數據集都已更改並且應該重新繪制它們,而實際上您只需要插入position+1處的添加視圖。

要僅通知回收站視圖有關插入的項目,您只需調用notifyItemInserted(position+1) (假設列表項索引和回收站視圖項目位置相同)

您可能也有興趣在此處學習實現 RecyclerView 動畫的簡潔方法,它使用內置的android:layoutAnimation屬性來定義您的布局插入動畫,即:

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"                                        
    android:layoutAnimation="@anim/layout_animation_fall_down"
    />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM