From 43d71e88132d842850fd24c98cc77611ac1907d3 Mon Sep 17 00:00:00 2001 From: seven332 Date: Tue, 27 Jan 2015 10:47:55 +0800 Subject: [PATCH] Add RTL support for LinearDividerItemDecoration --- .../LinearDividerItemDecoration.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/hippo/widget/recyclerview/LinearDividerItemDecoration.java b/app/src/main/java/com/hippo/widget/recyclerview/LinearDividerItemDecoration.java index f27100cce..7fb1f5f73 100644 --- a/app/src/main/java/com/hippo/widget/recyclerview/LinearDividerItemDecoration.java +++ b/app/src/main/java/com/hippo/widget/recyclerview/LinearDividerItemDecoration.java @@ -18,6 +18,7 @@ package com.hippo.widget.recyclerview; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; +import android.support.v4.view.ViewCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; @@ -113,8 +114,19 @@ public class LinearDividerItemDecoration extends RecyclerView.ItemDecoration { int itemCount = parent.getAdapter().getItemCount(); if (mOrientation == VERTICAL) { - final int left = parent.getPaddingLeft() + mPaddingStart; - final int right = parent.getWidth() - parent.getPaddingRight() - mPaddingEnd; + final boolean isRtl = ViewCompat.getLayoutDirection(parent) == ViewCompat.LAYOUT_DIRECTION_RTL; + int mPaddingLeft; + int mPaddingRight; + if (isRtl) { + mPaddingLeft = mPaddingEnd; + mPaddingRight = mPaddingStart; + } else { + mPaddingLeft = mPaddingStart; + mPaddingRight = mPaddingEnd; + } + + final int left = parent.getPaddingLeft() + mPaddingLeft; + final int right = parent.getWidth() - parent.getPaddingRight() - mPaddingRight; final int childCount = parent.getChildCount(); for (int i = 0; i < childCount; i++) {