@@ -174,7 +174,11 @@ public void onPaddingChanged(int layoutDirection) {
174174 int newPadding = (mCheckMarkDrawable != null ) ?
175175 mCheckMarkWidth + mBasePadding : mBasePadding ;
176176 mNeedRequestlayout |= (mPaddingRight != newPadding );
177- mPaddingRight = newPadding ;
177+ if (isLayoutRtl ()) {
178+ mPaddingLeft = newPadding ;
179+ } else {
180+ mPaddingRight = newPadding ;
181+ }
178182 if (mNeedRequestlayout ) {
179183 requestLayout ();
180184 mNeedRequestlayout = false ;
@@ -184,7 +188,7 @@ public void onPaddingChanged(int layoutDirection) {
184188 @ Override
185189 public void setPadding (int left , int top , int right , int bottom ) {
186190 super .setPadding (left , top , right , bottom );
187- mBasePadding = mPaddingRight ;
191+ mBasePadding = getPaddingEnd () ;
188192 }
189193
190194 @ Override
@@ -213,12 +217,13 @@ protected void onDraw(Canvas canvas) {
213217 break ;
214218 }
215219
216- int right = getWidth ();
217- checkMarkDrawable .setBounds (
218- right - mPaddingRight ,
219- y ,
220- right - mPaddingRight + mCheckMarkWidth ,
221- y + height );
220+ final boolean isLayoutRtl = isLayoutRtl ();
221+ final int width = getWidth ();
222+ final int top = y ;
223+ final int bottom = top + height ;
224+ final int left = isLayoutRtl ? getPaddingEnd () : width - getPaddingEnd ();
225+ final int right = left + mCheckMarkWidth ;
226+ checkMarkDrawable .setBounds ( left , top , right , bottom );
222227 checkMarkDrawable .draw (canvas );
223228 }
224229 }
0 commit comments