Android RecyclerView在位置(x,y)查找最底部的子对象

Android RecyclerView在位置(x,y)查找最底部的子对象,android,drag-and-drop,android-recyclerview,itemtouchhelper,Android,Drag And Drop,Android Recyclerview,Itemtouchhelper,在我的活动中,我有一个RecyclerView,附带了ItemTouchHelper。ItemTouchHelper具有重写的方法: @Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN |

在我的活动中,我有一个RecyclerView,附带了ItemTouchHelper。ItemTouchHelper具有重写的方法:

  @Override
    public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
        final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.START | ItemTouchHelper.END;
        final int swipeFlags = 0;
        return makeMovementFlags(dragFlags, swipeFlags);
    }

    @Override
    public boolean isLongPressDragEnabled() {
        return true;
    }
因此,RecyclerView中的视图是可拖动的

我的目标是能够通过RecyclerView拖动其中一个RecyclerView项并获取视图,即在拖动视图下。所以,我试着用“在给定点下找到最上面的视图”

但是那里发生了一些奇怪的事情

当我将某些项拖动到其原始位置的底部(如图1所示)时,正如您所看到的,findChildViewUnder()返回该拖动视图下的视图(这是我的目标)

但,若我将项目向上拖动到其原始位置(如图2所示),则findChildViewUnder()将返回拖动的视图(但不返回其下的视图)

有什么建议吗?如何始终获取处于拖动项下的视图

 @Override
    public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
        super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);

        if (this.mRecyclerView.findChildViewUnder(viewHolder.itemView.getX(), viewHolder.itemView.getY()) != null) {
            System.out.println(this.mRecyclerView.findChildViewUnder(viewHolder.itemView.getX(), viewHolder.itemView.getY()).getTag());
            System.out.println(viewHolder.itemView.getX() + " " +viewHolder.itemView.getY());
        }

      //  mRecyclerView.
    }