From 3809c3ba4d4d6e06985db64b2afa165795f140a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=83=E9=B8=9F?= <984082450@qq.com> Date: Sat, 30 Sep 2017 15:48:47 +0800 Subject: [PATCH] fix itemAnimator ValueAnimator with DividerHeight MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ValueAnimator中的动画距离需要考虑到Listview的DividerHeight. --- .../diandian/coolco/dragsortlistview/DragSortListView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/diandian/coolco/dragsortlistview/DragSortListView.java b/app/src/main/java/com/diandian/coolco/dragsortlistview/DragSortListView.java index 97d8b5c..2959d5a 100644 --- a/app/src/main/java/com/diandian/coolco/dragsortlistview/DragSortListView.java +++ b/app/src/main/java/com/diandian/coolco/dragsortlistview/DragSortListView.java @@ -92,7 +92,7 @@ private void init() { draggingItemViewBitmapPaint = new Paint(); draggingItemViewBitmapPaint.setAlpha(0x88); - setLayerType(View.LAYER_TYPE_HARDWARE, null);//Ӳ + setLayerType(View.LAYER_TYPE_HARDWARE, null); //hardware acceleration needMoveItems = new ArrayList(); } @@ -254,7 +254,9 @@ private void moveItems(final int oldEmptyPosition, final int newEmptyPosition, f initNeedMoveItems(oldEmptyPosition, newEmptyPosition); - itemAnimator = newEmptyPosition > oldEmptyPosition ? ValueAnimator.ofFloat(0, -draggingItemHeight) : ValueAnimator.ofFloat(0, draggingItemHeight);//currPosition > srcPositionƶitemView + itemAnimator = newEmptyPosition > oldEmptyPosition + ? ValueAnimator.ofFloat(0, -draggingItemHeight - getDividerHeight()) + : ValueAnimator.ofFloat(0, draggingItemHeight + getDividerHeight()); //when currPosition > srcPosition, move up itemView itemAnimator.setDuration(duration); itemAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override