@@ -46,6 +46,9 @@ public class CheckedTextView extends TextView implements Checkable {
4646 private int mCheckMarkWidth ;
4747 private boolean mNeedRequestlayout ;
4848
49+ private int initialPaddingLeft = -1 ;
50+ private int initialPaddingRight = -1 ;
51+
4952 private static final int [] CHECKED_STATE_SET = {
5053 R .attr .state_checked
5154 };
@@ -176,10 +179,22 @@ public Drawable getCheckMarkDrawable() {
176179 protected void internalSetPadding (int left , int top , int right , int bottom ) {
177180 super .internalSetPadding (left , top , right , bottom );
178181 setBasePadding (isLayoutRtl ());
182+ initialPaddingLeft = mPaddingLeft ;
183+ initialPaddingRight = mPaddingRight ;
179184 }
180185
181186 @ Override
182187 public void onPaddingChanged (int layoutDirection ) {
188+ updatePadding ();
189+ }
190+
191+ @ Override
192+ public void onRtlPropertiesChanged () {
193+ super .onRtlPropertiesChanged ();
194+ updatePadding ();
195+ }
196+
197+ private void updatePadding () {
183198 int newPadding = (mCheckMarkDrawable != null ) ?
184199 mCheckMarkWidth + mBasePadding : mBasePadding ;
185200 mNeedRequestlayout |= (mPaddingRight != newPadding );
@@ -193,7 +208,7 @@ public void onPaddingChanged(int layoutDirection) {
193208 mNeedRequestlayout = false ;
194209 }
195210 }
196-
211+
197212 @ Override
198213 public void setPadding (int left , int top , int right , int bottom ) {
199214 super .setPadding (left , top , right , bottom );
0 commit comments