4

アダプター内で startSwipe を使用しようとしましたが、機能していないようです。不思議なことに、手動で指でスワイプしようとすると、うまくいきました。ただ、ホルダー内のボタンをクリックしてもstartSwipeが機能しません。これについて助けが必要です〜

ここで startSwipe を呼び出しました (onCreateViewHolder メソッド内)。

final ViewHolder holder = new ViewHolder(rootView);
holder.rightItemLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        mItemTouchHelper.startSwipe(holder);
    }
});

これは、ItemTouchHelper をセットアップする方法です。

mItemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
    @Override
    public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        return true;
    }

    @Override
    public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {

    }
});

RecyclerView に ItemTouchHelper をアタッチする方法:

RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());

CategoryAdapter adapter = new CategoryAdapter(this, items);
recyclerView.setAdapter(adapter);
adapter.getItemTouchHelper().attachToRecyclerView(recyclerView);
4

0 に答える 0