我已经在 RecyclerView (rv) 上实现了 ItemTouchHelper.SimpleCallback。现在,在这个 rv 中,我设置了两种不同类型的布局作为一行,具体取决于内容类型。
但是,当我把这个 touchhelper 设置到 rv 上时,它被应用到了这两种布局上,尽管我并不想这样做。我只想将 swipe 应用于其中一种布局。
ItemTouchHelper.SimpleCallback ith = new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if(viewHolder.itemView.findViewById(R.id.messageholder_from) != null)
{
Log.d("texts", "onSwiped: "+viewHolder.itemView.findViewById(R.id.messageholder_from).findViewById(R.id.crfrom));
}
adapter.notifyDataSetChanged();
}
};
new ItemTouchHelper(ith).attachToRecyclerView(rv);
正如您所看到的这段代码,我只想在具有此 messageholder_from 子元素的行上实现滑动,否则我不想实现滑动。
是否有任何方法可以在其他子元素 messageholder_to 上删除滑动动画和侦听器。
我的应用程序根据消息 ID 显示 to_layout 或 from_layout。
感谢任何形式的帮助。