首页 > 解决方案 > 刷卡删除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 中,所以问题可能出在哪里?

标签: javaandroid-studioandroid-recyclerviewswipeitemtouchhelper

解决方案


好的,我终于找到了问题所在。我只需要在构建的方法中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();
        }
    };

推荐阅读