From cc33d7ec0fce726b93d4a1c82731f64cebbb3bcb Mon Sep 17 00:00:00 2001 From: Yigit Boyar Date: Thu, 17 Jul 2014 16:37:21 -0700 Subject: [PATCH] Update divider item decorator to account for view translation Bug: 16241985 Change-Id: Id441a07fe547493007e9e05d1039bac526847a1c --- .../supportv7/widget/decorator/DividerItemDecoration.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java b/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java index 4d5d2083a..4386f4f00 100644 --- a/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java +++ b/samples/Support7Demos/src/com/example/android/supportv7/widget/decorator/DividerItemDecoration.java @@ -21,6 +21,7 @@ import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.support.v4.view.ViewCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; @@ -71,7 +72,8 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); - final int top = child.getBottom() + params.bottomMargin; + final int top = child.getBottom() + params.bottomMargin + + Math.round(ViewCompat.getTranslationY(child)); final int bottom = top + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c); @@ -87,7 +89,8 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration { final View child = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child .getLayoutParams(); - final int left = child.getRight() + params.rightMargin; + final int left = child.getRight() + params.rightMargin + + Math.round(ViewCompat.getTranslationX(child)); final int right = left + mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(c);