Recycler视图按类别排列项目

时间:2017-01-10 08:44:03

标签: android android-recyclerview android-animation

我创建了RecyclerView GridManagerLayout

为简单起见,我的卡有2个维度,ID和稀有度。我想要一个按钮,通过他们的身份证或他们的稀有程度将卡片排列在网格中。我应该采取什么方式来做这件事,以便我可以动画卡片移动到新的位置?

按下按钮后我尝试创建新的ArrayList,然后notifydDatasetChanged()。物品切换位置很好,但没有动画,即卡片只是重新填充而不是“移动” 到新的位置效应。我想这是因为我定义了一个新的ArrayList而不是改变当前列表。

我读了另一篇文章说我应该使用Collections.swap来做到这一点。不确定这是否是我应该追求的。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我有一个可能的解决方案!

将此方法写入RecyclerView适配器。

public void addItemList(List<JobListApi.Job> newlyCreatedList) {
    int lastPosition = this.mainItemList.size();
    this.mainItemList.addAll(newlyCreatedList);
    this.notifyItemRangeInserted(lastPosition, newlyCreatedList.size());
}

现在使用新创建的ArrayList调用此方法。

希望这适合你。

答案 1 :(得分:0)

我设法解决了这个问题。如果有人需要答案,请使用notifyItemMoved(),然后使用notifyItemRangeChanged(position,getItemCount)