mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-03-06 17:34:07 +08:00
improve RTL (#24069)
Summary: Google recommends to use Gravity.START and Gravity.END instead of Gravity.LEFT and Gravity.RIGHT to support RTL better. [Android] [Changed] - Improve RTL support Pull Request resolved: https://github.com/facebook/react-native/pull/24069 Differential Revision: D14541569 Pulled By: cpojer fbshipit-source-id: 5c104d8bd666e1270d5410216c7f2efa6152692a
This commit is contained in:
committed by
Facebook Github Bot
parent
7fce997ea5
commit
b3c74967ca
@@ -315,10 +315,10 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
|
||||
private int getTextAlign() {
|
||||
int textAlign = mTextAlign;
|
||||
if (getLayoutDirection() == YogaDirection.RTL) {
|
||||
if (textAlign == Gravity.RIGHT) {
|
||||
textAlign = Gravity.LEFT;
|
||||
} else if (textAlign == Gravity.LEFT) {
|
||||
textAlign = Gravity.RIGHT;
|
||||
if (textAlign == Gravity.END) {
|
||||
textAlign = Gravity.START;
|
||||
} else if (textAlign == Gravity.START) {
|
||||
textAlign = Gravity.END;
|
||||
}
|
||||
}
|
||||
return textAlign;
|
||||
@@ -364,7 +364,7 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
|
||||
}
|
||||
mTextAlign = Gravity.LEFT;
|
||||
mTextAlign = Gravity.START;
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
|
||||
@@ -373,9 +373,9 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
|
||||
if (textAlign == null || "auto".equals(textAlign)) {
|
||||
mTextAlign = Gravity.NO_GRAVITY;
|
||||
} else if ("left".equals(textAlign)) {
|
||||
mTextAlign = Gravity.LEFT;
|
||||
mTextAlign = Gravity.START;
|
||||
} else if ("right".equals(textAlign)) {
|
||||
mTextAlign = Gravity.RIGHT;
|
||||
mTextAlign = Gravity.END;
|
||||
} else if ("center".equals(textAlign)) {
|
||||
mTextAlign = Gravity.CENTER_HORIZONTAL;
|
||||
} else {
|
||||
|
||||
@@ -76,10 +76,10 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
|
||||
|
||||
Layout.Alignment alignment = Layout.Alignment.ALIGN_NORMAL;
|
||||
switch (getTextAlign()) {
|
||||
case Gravity.LEFT:
|
||||
case Gravity.START:
|
||||
alignment = Layout.Alignment.ALIGN_NORMAL;
|
||||
break;
|
||||
case Gravity.RIGHT:
|
||||
case Gravity.END:
|
||||
alignment = Layout.Alignment.ALIGN_OPPOSITE;
|
||||
break;
|
||||
case Gravity.CENTER_HORIZONTAL:
|
||||
@@ -179,10 +179,10 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
|
||||
private int getTextAlign() {
|
||||
int textAlign = mTextAlign;
|
||||
if (getLayoutDirection() == YogaDirection.RTL) {
|
||||
if (textAlign == Gravity.RIGHT) {
|
||||
textAlign = Gravity.LEFT;
|
||||
} else if (textAlign == Gravity.LEFT) {
|
||||
textAlign = Gravity.RIGHT;
|
||||
if (textAlign == Gravity.END) {
|
||||
textAlign = Gravity.START;
|
||||
} else if (textAlign == Gravity.START) {
|
||||
textAlign = Gravity.END;
|
||||
}
|
||||
}
|
||||
return textAlign;
|
||||
|
||||
@@ -164,10 +164,10 @@ public class TextAttributeProps {
|
||||
public int getTextAlign() {
|
||||
int textAlign = mTextAlign;
|
||||
if (getLayoutDirection() == YogaDirection.RTL) {
|
||||
if (textAlign == Gravity.RIGHT) {
|
||||
textAlign = Gravity.LEFT;
|
||||
} else if (textAlign == Gravity.LEFT) {
|
||||
textAlign = Gravity.RIGHT;
|
||||
if (textAlign == Gravity.END) {
|
||||
textAlign = Gravity.START;
|
||||
} else if (textAlign == Gravity.START) {
|
||||
textAlign = Gravity.END;
|
||||
}
|
||||
}
|
||||
return textAlign;
|
||||
@@ -210,7 +210,7 @@ public class TextAttributeProps {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
|
||||
}
|
||||
mTextAlign = Gravity.LEFT;
|
||||
mTextAlign = Gravity.START;
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
|
||||
@@ -219,9 +219,9 @@ public class TextAttributeProps {
|
||||
if (textAlign == null || "auto".equals(textAlign)) {
|
||||
mTextAlign = Gravity.NO_GRAVITY;
|
||||
} else if ("left".equals(textAlign)) {
|
||||
mTextAlign = Gravity.LEFT;
|
||||
mTextAlign = Gravity.START;
|
||||
} else if ("right".equals(textAlign)) {
|
||||
mTextAlign = Gravity.RIGHT;
|
||||
mTextAlign = Gravity.END;
|
||||
} else if ("center".equals(textAlign)) {
|
||||
mTextAlign = Gravity.CENTER_HORIZONTAL;
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
package com.facebook.react.views.textinput;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -478,7 +479,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
view.setJustificationMode(Layout.JUSTIFICATION_MODE_INTER_WORD);
|
||||
}
|
||||
view.setGravityHorizontal(Gravity.LEFT);
|
||||
view.setGravityHorizontal(Gravity.START);
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
view.setJustificationMode(Layout.JUSTIFICATION_MODE_NONE);
|
||||
@@ -487,9 +488,9 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
if (textAlign == null || "auto".equals(textAlign)) {
|
||||
view.setGravityHorizontal(Gravity.NO_GRAVITY);
|
||||
} else if ("left".equals(textAlign)) {
|
||||
view.setGravityHorizontal(Gravity.LEFT);
|
||||
view.setGravityHorizontal(Gravity.START);
|
||||
} else if ("right".equals(textAlign)) {
|
||||
view.setGravityHorizontal(Gravity.RIGHT);
|
||||
view.setGravityHorizontal(Gravity.END);
|
||||
} else if ("center".equals(textAlign)) {
|
||||
view.setGravityHorizontal(Gravity.CENTER_HORIZONTAL);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user