如何使用具有异构视图类型的项目触摸助手?

How to use item touch helper with heterogeneous view types?

我正在学习本教程 Item touch helper example(实际上只是项目触摸助手部分,因为我希望在滑动时看到红色背景和删除图标)。但是我的 recyclerview 中有两种不同的视图类型。我将如何实施它?我被困在这条线上

final View foregroundView = ((CartListAdapter.MyViewHolder) viewHolder).viewForeground;

RecyclerItemTouchHelper.javaonChildDraw方法

所有 ViewHolder 实例都有一个方法 getItemViewType(),当ViewHolder 已创建。您可以使用此处的值来选择要投射到您自己的 ViewHolder 子类中的哪个:

public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
    int viewType = viewHolder.getItemViewType();

    if (viewType == MY_FIRST_TYPE) {
        ((MyFirstSubclass) viewHolder).foo();
        // ...
    } else if (viewType == MY_SECOND_TYPE) {
        ((MySecondSubclass) viewHolder).bar();
        // ...
    }

    // ...
}