Loading core/java/android/view/View.java +4 −1 Original line number Diff line number Diff line Loading @@ -9099,7 +9099,10 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit mPrivateFlags2 |= LAYOUT_DIRECTION_RESOLVED; } private void resolvePadding() { /** * @hide */ protected void resolvePadding() { // If the user specified the absolute padding (either with android:padding or // android:paddingLeft/Top/Right/Bottom), use this padding, otherwise // use the default padding or the padding from the background drawable Loading core/java/android/widget/CheckedTextView.java +25 −7 Original line number Diff line number Diff line Loading @@ -39,8 +39,9 @@ public class CheckedTextView extends TextView implements Checkable { private boolean mChecked; private int mCheckMarkResource; private Drawable mCheckMarkDrawable; private int mBasePaddingRight; private int mBasePadding; private int mCheckMarkWidth; private boolean mNeedRequestlayout; private static final int[] CHECKED_STATE_SET = { R.attr.state_checked Loading Loading @@ -123,6 +124,7 @@ public class CheckedTextView extends TextView implements Checkable { mCheckMarkDrawable.setCallback(null); unscheduleDrawable(mCheckMarkDrawable); } mNeedRequestlayout = (d != mCheckMarkDrawable); if (d != null) { d.setCallback(this); d.setVisible(getVisibility() == VISIBLE, false); Loading @@ -130,19 +132,35 @@ public class CheckedTextView extends TextView implements Checkable { setMinHeight(d.getIntrinsicHeight()); mCheckMarkWidth = d.getIntrinsicWidth(); mUserPaddingRight = mCheckMarkWidth + mBasePaddingRight; d.setState(getDrawableState()); } else { mUserPaddingRight = mBasePaddingRight; mCheckMarkWidth = 0; } mCheckMarkDrawable = d; // Do padding resolution. This will call setPadding() and do a requestLayout() if needed. resolvePadding(); } /** * @hide */ @Override protected void resolvePadding() { super.resolvePadding(); int newPadding = (mCheckMarkDrawable != null) ? mCheckMarkWidth + mBasePadding : mBasePadding; mNeedRequestlayout |= (mPaddingRight != newPadding); mPaddingRight = newPadding; if (mNeedRequestlayout) { requestLayout(); mNeedRequestlayout = false; } } @Override public void setPadding(int left, int top, int right, int bottom) { super.setPadding(left, top, right, bottom); mBasePaddingRight = mUserPaddingRight; mBasePadding = mPaddingRight; } @Override Loading @@ -167,9 +185,9 @@ public class CheckedTextView extends TextView implements Checkable { int right = getWidth(); checkMarkDrawable.setBounds( right - mUserPaddingRight, right - mPaddingRight, y, right - mUserPaddingRight + mCheckMarkWidth, right - mPaddingRight + mCheckMarkWidth, y + height); checkMarkDrawable.draw(canvas); } Loading Loading
core/java/android/view/View.java +4 −1 Original line number Diff line number Diff line Loading @@ -9099,7 +9099,10 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit mPrivateFlags2 |= LAYOUT_DIRECTION_RESOLVED; } private void resolvePadding() { /** * @hide */ protected void resolvePadding() { // If the user specified the absolute padding (either with android:padding or // android:paddingLeft/Top/Right/Bottom), use this padding, otherwise // use the default padding or the padding from the background drawable Loading
core/java/android/widget/CheckedTextView.java +25 −7 Original line number Diff line number Diff line Loading @@ -39,8 +39,9 @@ public class CheckedTextView extends TextView implements Checkable { private boolean mChecked; private int mCheckMarkResource; private Drawable mCheckMarkDrawable; private int mBasePaddingRight; private int mBasePadding; private int mCheckMarkWidth; private boolean mNeedRequestlayout; private static final int[] CHECKED_STATE_SET = { R.attr.state_checked Loading Loading @@ -123,6 +124,7 @@ public class CheckedTextView extends TextView implements Checkable { mCheckMarkDrawable.setCallback(null); unscheduleDrawable(mCheckMarkDrawable); } mNeedRequestlayout = (d != mCheckMarkDrawable); if (d != null) { d.setCallback(this); d.setVisible(getVisibility() == VISIBLE, false); Loading @@ -130,19 +132,35 @@ public class CheckedTextView extends TextView implements Checkable { setMinHeight(d.getIntrinsicHeight()); mCheckMarkWidth = d.getIntrinsicWidth(); mUserPaddingRight = mCheckMarkWidth + mBasePaddingRight; d.setState(getDrawableState()); } else { mUserPaddingRight = mBasePaddingRight; mCheckMarkWidth = 0; } mCheckMarkDrawable = d; // Do padding resolution. This will call setPadding() and do a requestLayout() if needed. resolvePadding(); } /** * @hide */ @Override protected void resolvePadding() { super.resolvePadding(); int newPadding = (mCheckMarkDrawable != null) ? mCheckMarkWidth + mBasePadding : mBasePadding; mNeedRequestlayout |= (mPaddingRight != newPadding); mPaddingRight = newPadding; if (mNeedRequestlayout) { requestLayout(); mNeedRequestlayout = false; } } @Override public void setPadding(int left, int top, int right, int bottom) { super.setPadding(left, top, right, bottom); mBasePaddingRight = mUserPaddingRight; mBasePadding = mPaddingRight; } @Override Loading @@ -167,9 +185,9 @@ public class CheckedTextView extends TextView implements Checkable { int right = getWidth(); checkMarkDrawable.setBounds( right - mUserPaddingRight, right - mPaddingRight, y, right - mUserPaddingRight + mCheckMarkWidth, right - mPaddingRight + mCheckMarkWidth, y + height); checkMarkDrawable.draw(canvas); } Loading