尝试在这里完成以下几个步骤,以便我可以支持RTL:
Making an App RTL-ready
我正在尝试根据说明将这些行添加到MainActivity.java
:
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.setAllowRTL(context, true);
(我不是原生Android开发人员,但尝试使用本机反应并偶尔访问Android源来修改更深层次的更改 - 这个不会编译。)
First
,他们认为应该在哪里定义context
?我无法想象它是一种全球性的......?
Second
,setAllowRTL以红色显示...这似乎是编译错误。
知道他们的意思吗?我甚至在正确的地方定义了这个吗?
我的代码如下所示:
import com.facebook.react.ReactActivity;
import com.facebook.react.modules.i18nmanager.I18nUtil;
import android.content.Intent;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "myApp";
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.setAllowRTL(context, true);
MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
}
}
答案 0 :(得分:8)
在MainApplication.java中添加此导入:
import com.facebook.react.modules.i18nmanager.I18nUtil;
并添加
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), true);
}
答案 1 :(得分:0)
将此导入添加到MainActivity.java中:
import com.facebook.react.modules.i18nmanager.I18nUtil;
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), true);
在ReactActivityDelegate中添加这些行
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
sharedI18nUtilInstance.allowRTL(getApplicationContext(), true);
return new RNGestureHandlerEnabledRootView(MainActivity.this);
}
};
}