ItemTouchHelper.SimpleCallback onSwiped in 嵌套的 RecyclerView 和 CardView

ItemTouchHelper.SimpleCallback onSwiped in nested RecyclerView with CardViews

提问人:uwe 提问时间:1/13/2022 最后编辑:uwe 更新时间:1/13/2022 访问量:131

问:

在我的应用程序中,我有一个显示 CardView 的(主要)RecyclerView。在显示的每个 CardView 中,依次有一个(辅助)RecyclerView,它也显示 CardView。(嵌套 RecyclerView) 这些(辅助)RecyclerView 是在主 RecyclerView 适配器的 onBindViewHolder 方法中设置的,我还允许使用 ItemTouchHelper 在(辅助)RecyclerView 中滑动 CardView。

public void onBindViewHolder( RkTageViewHolder holder, int position ) {
...
     LinearLayoutManager layoutManager = new LinearLayoutManager( holder.rvAbschnitte.getContext(), LinearLayoutManager.VERTICAL, false);
     current.setRkAbschnitte(m_rkAbschnittDao.getRkAbschnittListe(current.getReiseID()));
     layoutManager.setInitialPrefetchItemCount(current.getRkAbschnitte().size());
     RkAbschnitteAdapter rkAbschnitteAdapter = new rkAbschnitteAdapter(current.getRkAbschnitte());
    holder.rvAbschnitte.setLayoutManager(layoutManager);
    holder.rvAbschnitte.setAdapter(rkAbschnitteAdapter);

...

    new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
      @Override
      public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        return false;
      }

      @Override
      public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
        Toast.makeText(holder.rvAbschnitte.getContext(), "Löschen aktuell nicht möglich...", Toast.LENGTH_SHORT).show();
      }
    }).attachToRecyclerView(holder.rvAbschnitte);

...

}

一切正常,直到我还允许在主 RecyclerView 中滑动 CardView。无论我在哪里滑动,在主 RecyclerView 中都只有 CardView 被移动。

如果我只允许在主 RecyclerView 中向右滑动,在辅助 RecyclerView 中向左滑动,则它可以工作。只要我允许在两个 RecyclerView 中沿同一方向滑动,就会只移动主 RecyclerView 中的 cardView。

有没有办法告诉主 RecyclerView 在执行滑动时它会将滑动命令传递给其子 RecyclerView?

非常感谢

乌韦

Android-CardView itemtouchhelper nestedrecyclerview

评论


答: 暂无答案