Skip to content

Commit a2a238a

Browse files
leticiarossihunterstich
authored andcommitted
[TextInputLayout] Fixed padding for prefix/suffix and label in RTL being wrong.
PiperOrigin-RevId: 319873647 (cherry picked from commit 7b5aea2)
1 parent d51ae67 commit a2a238a

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

lib/java/com/google/android/material/textfield/TextInputLayout.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,11 +2250,13 @@ private void updatePrefixTextViewPadding() {
22502250
if (editText == null) {
22512251
return;
22522252
}
2253-
prefixTextView.setPadding(
2254-
isStartIconVisible() ? 0 : editText.getPaddingLeft(),
2255-
this.editText.getCompoundPaddingTop(),
2256-
prefixTextView.getCompoundPaddingRight(),
2257-
this.editText.getCompoundPaddingBottom());
2253+
int startPadding = isStartIconVisible() ? 0 : ViewCompat.getPaddingStart(editText);
2254+
ViewCompat.setPaddingRelative(
2255+
prefixTextView,
2256+
startPadding,
2257+
editText.getCompoundPaddingTop(),
2258+
0,
2259+
editText.getCompoundPaddingBottom());
22582260
}
22592261

22602262
/**
@@ -2337,11 +2339,10 @@ private void updateSuffixTextViewPadding() {
23372339
if (editText == null) {
23382340
return;
23392341
}
2340-
suffixTextView.setPadding(
2341-
suffixTextView.getPaddingLeft(),
2342-
editText.getPaddingTop(),
2343-
(isEndIconVisible() || isErrorIconVisible()) ? 0 : editText.getPaddingRight(),
2344-
editText.getPaddingBottom());
2342+
int endPadding =
2343+
(isEndIconVisible() || isErrorIconVisible()) ? 0 : ViewCompat.getPaddingEnd(editText);
2344+
ViewCompat.setPaddingRelative(
2345+
suffixTextView, 0, editText.getPaddingTop(), endPadding, editText.getPaddingBottom());
23452346
}
23462347

23472348
@Override
@@ -2481,7 +2482,7 @@ private int getLabelRightBoundAlignedWithSuffix(int rectRight, boolean isRtl) {
24812482
int right = rectRight - editText.getCompoundPaddingRight();
24822483
if (prefixText != null && isRtl) {
24832484
// Label should be vertically aligned with prefix if in RTL
2484-
right = right + prefixTextView.getMeasuredWidth() + prefixTextView.getPaddingRight();
2485+
right += prefixTextView.getMeasuredWidth() - prefixTextView.getPaddingRight();
24852486
}
24862487
return right;
24872488
}
@@ -2774,6 +2775,8 @@ public void run() {
27742775
});
27752776
}
27762777
updatePlaceholderMeasurementsBasedOnEditText();
2778+
updatePrefixTextViewPadding();
2779+
updateSuffixTextViewPadding();
27772780
}
27782781

27792782
private boolean updateEditTextHeightBasedOnIcon() {

0 commit comments

Comments
 (0)