From 3b86dd1973fe618083086c8c72e02845d9b280b2 Mon Sep 17 00:00:00 2001 From: Helco Date: Tue, 24 May 2016 16:22:46 +0200 Subject: [PATCH] Fix drag handler position calculation --- src/com/terlici/dragndroplist/DragNDropListView.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/terlici/dragndroplist/DragNDropListView.java b/src/com/terlici/dragndroplist/DragNDropListView.java index 8e8ad0b..24d9eb2 100644 --- a/src/com/terlici/dragndroplist/DragNDropListView.java +++ b/src/com/terlici/dragndroplist/DragNDropListView.java @@ -103,9 +103,16 @@ public boolean isDrag(MotionEvent ev) { if (handler == null) return false; - int top = parent.getTop() + handler.getTop(); + int top = handler.getTop(); + int left = handler.getLeft(); + View subParent = handler; + do { + subParent = (View)subParent.getParent(); + top += subParent.getTop(); + left += subParent.getLeft(); + } while(subParent != parent); + int bottom = top + handler.getHeight(); - int left = parent.getLeft() + handler.getLeft(); int right = left + handler.getWidth(); return left <= x && x <= right && top <= y && y <= bottom;