アダプター内で 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);