java - 刷卡删除recyclerview的项目不起作用
问题描述
我正在尝试将此功能添加到我RecyclerView
的 ,当我向左或向右滑动一个项目时,它会被删除。
但是当我执行我的应用程序时,我什至无法滑动其中一项。
感谢任何帮助
new ItemTouchHelper(itemTouchHelperCallback).attachToRecyclerView(mRecyclerView);
ItemTouchHelper.SimpleCallback itemTouchHelperCallback= new ItemTouchHelper.SimpleCallback(0,
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
mExampleList.remove(viewHolder.getAdapterPosition());
mAdapter.notifyDataSetChanged();
saveData();
}
顺便说一句,这RecyclerView
不在我的 MainActivity 中,而是在可以从 MainActivity 的 Drawer 菜单打开的 Fragment 中,所以问题可能出在哪里?
解决方案
好的,我终于找到了问题所在。我只需要在构建的方法中RecyclerView
而不是在 onCreate 方法中初始化 ItemTouchHelper。
所以这就是代码的样子:
private void buildRecyclerView() {
mRecyclerView = view.findViewById(R.id.recyclerview);
mLayoutManager = new LinearLayoutManager(getActivity());
mAdapter = new ExampleAdapter(mExampleList);
mRecyclerView.setLayoutManager(mLayoutManager);
new ItemTouchHelper(itemTochHelperCallback).attachToRecyclerView(mRecyclerView);
mRecyclerView.setAdapter(mAdapter);
}
ItemTouchHelper.SimpleCallback itemTochHelperCallback=new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
mExampleList.remove(viewHolder.getAdapterPosition());
mAdapter.notifyDataSetChanged();
}
};