mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix letter-spacing not being cleared when reusing ReactTextView (#42258)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42258 Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D52693975 fbshipit-source-id: b26d8350068eda25c78fbd05d71452395e79fc2d
This commit is contained in:
committed by
Facebook GitHub Bot
parent
9bd357e7a0
commit
0dd27f212f
+1
-1
@@ -396,7 +396,7 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
|
||||
markUpdated();
|
||||
}
|
||||
|
||||
@ReactProp(name = ViewProps.LETTER_SPACING, defaultFloat = Float.NaN)
|
||||
@ReactProp(name = ViewProps.LETTER_SPACING, defaultFloat = 0.f)
|
||||
public void setLetterSpacing(float letterSpacing) {
|
||||
mTextAttributes.setLetterSpacing(letterSpacing);
|
||||
markUpdated();
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ public abstract class ReactTextAnchorViewManager<T extends View, C extends React
|
||||
view.setFontSize(fontSize);
|
||||
}
|
||||
|
||||
@ReactProp(name = ViewProps.LETTER_SPACING, defaultFloat = Float.NaN)
|
||||
@ReactProp(name = ViewProps.LETTER_SPACING, defaultFloat = 0.f)
|
||||
public void setLetterSpacing(ReactTextView view, float letterSpacing) {
|
||||
view.setLetterSpacing(letterSpacing);
|
||||
}
|
||||
|
||||
+13
-13
@@ -52,14 +52,15 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
private static final ViewGroup.LayoutParams EMPTY_LAYOUT_PARAMS =
|
||||
new ViewGroup.LayoutParams(0, 0);
|
||||
|
||||
// https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/widget/TextView.java#L854
|
||||
private static final int DEFAULT_GRAVITY = Gravity.TOP | Gravity.START;
|
||||
|
||||
private boolean mContainsImages;
|
||||
private final int mDefaultGravityHorizontal;
|
||||
private final int mDefaultGravityVertical;
|
||||
private int mNumberOfLines;
|
||||
private TextUtils.TruncateAt mEllipsizeLocation;
|
||||
private boolean mAdjustsFontSizeToFit;
|
||||
private float mFontSize = Float.NaN;
|
||||
private float mLetterSpacing = Float.NaN;
|
||||
private float mFontSize;
|
||||
private float mLetterSpacing;
|
||||
private int mLinkifyMaskType;
|
||||
private boolean mNotifyOnInlineViewLayout;
|
||||
private boolean mTextIsSelectable;
|
||||
@@ -69,11 +70,6 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
|
||||
public ReactTextView(Context context) {
|
||||
super(context);
|
||||
|
||||
// Get these defaults only during the constructor - these should never be set otherwise
|
||||
mDefaultGravityHorizontal = getGravityHorizontal();
|
||||
mDefaultGravityVertical = getGravity() & Gravity.VERTICAL_GRAVITY_MASK;
|
||||
|
||||
initView();
|
||||
}
|
||||
|
||||
@@ -96,6 +92,8 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
mNotifyOnInlineViewLayout = false;
|
||||
mTextIsSelectable = false;
|
||||
mEllipsizeLocation = TextUtils.TruncateAt.END;
|
||||
mFontSize = Float.NaN;
|
||||
mLetterSpacing = 0.f;
|
||||
|
||||
mSpanned = null;
|
||||
}
|
||||
@@ -115,10 +113,10 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
// reset text
|
||||
setLayoutParams(EMPTY_LAYOUT_PARAMS);
|
||||
super.setText(null);
|
||||
applyTextAttributes();
|
||||
|
||||
// Call setters to ensure that any super setters are called
|
||||
setGravityHorizontal(mDefaultGravityHorizontal);
|
||||
setGravityVertical(mDefaultGravityVertical);
|
||||
setGravity(DEFAULT_GRAVITY);
|
||||
setNumberOfLines(mNumberOfLines);
|
||||
setAdjustFontSizeToFit(mAdjustsFontSizeToFit);
|
||||
setLinkifyMask(mLinkifyMaskType);
|
||||
@@ -555,7 +553,9 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
|
||||
/* package */ void setGravityHorizontal(int gravityHorizontal) {
|
||||
if (gravityHorizontal == 0) {
|
||||
gravityHorizontal = mDefaultGravityHorizontal;
|
||||
gravityHorizontal =
|
||||
DEFAULT_GRAVITY
|
||||
& (Gravity.HORIZONTAL_GRAVITY_MASK | Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK);
|
||||
}
|
||||
setGravity(
|
||||
(getGravity()
|
||||
@@ -566,7 +566,7 @@ public class ReactTextView extends AppCompatTextView implements ReactCompoundVie
|
||||
|
||||
/* package */ void setGravityVertical(int gravityVertical) {
|
||||
if (gravityVertical == 0) {
|
||||
gravityVertical = mDefaultGravityVertical;
|
||||
gravityVertical = DEFAULT_GRAVITY & Gravity.VERTICAL_GRAVITY_MASK;
|
||||
}
|
||||
setGravity((getGravity() & ~Gravity.VERTICAL_GRAVITY_MASK) | gravityVertical);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user