【发布时间】:2015-02-02 17:35:44
【问题描述】:
我正在构建一个基于 RecyclerView 的组件,允许用户通过拖放重新排序项目。 一旦我在 DragListener 端,我需要它在适配器中的位置才能执行正确的移动,但我只能访问视图。 所以这就是我在适配器视图绑定中所做的:
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
Track track = mArray.get(position);
viewHolder.itemView.setTag(R.string.TAG_ITEM_POSITION, position);
}
你觉得它正确吗? 因为如果我像这样移动一个项目:
public void move(int from, int to){
Track track = mArray.remove(from);
mArray.add(to, track);
notifyItemMoved(from, to);
}
那么位置标记不再正确,如果我 notifyDataSetChanged(),我会失去花哨的动画。 有什么建议吗?
【问题讨论】:
标签: android adapter android-recyclerview