【问题标题】:RecyclerView ItemTouchHelper doesn't remove itemRecyclerView ItemTouchHelper 不删除项目
【发布时间】:2019-05-16 13:25:20
【问题描述】:

我正在尝试在 RecyclerView 中实现滑动以存档笔记。
它工作正常,但是在我添加了这些代码以从 onResume() 刷新 RecyclerView 后,Swiping 虽然确实存档了注释,但该项目不会被删除并保持在下图中可以看到的状态:

这就是我在onResume() 中所做的:

@Override
    protected void onResume() {
        super.onResume();
        notes = noteDAO.getAllNotes();
        noteAdapter = new NoteAdapter(notes,this);
        recyclerView.setAdapter(noteAdapter);
    }  

ItemTouchHelper onSwiped():

@Override
    public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
        int position = viewHolder.getAdapterPosition();
        noteAdapter.deleteItem(position,rv);
    }  

适配器中的deleteItem 方法:

    public void deleteItem(int position, RecyclerView rv) {
            noteDAO = DBInjector.provideNoteDao(context);
            recentlyDeletedNote = notes.get(position);
            recentlyDeletedNotePosition = position;
            recentlyDeletedNote.setArchive(true);
            notes.remove(position);
            noteDAO.archiveNote(recentlyDeletedNote);
            notifyItemRemoved(position);
    }

【问题讨论】:

标签: android android-recyclerview itemtouchhelper


【解决方案1】:

我尝试了很多解决方案,它没有更新视图的唯一原因是在更新回收器视图时,视图正在更新,尤其是在使用 ItemTouchHelper 时。因为我没有太多选择,所以我使用了

重新创建()

刷新整个活动的功能,错误消失了。

PS:这不是理想的解决方案,它只是临时解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多