gpt4 book ai didi

java - 有什么方法可以自动设置所有布局以支持android中的RTL和LTR方向类型的语言

转载 作者:太空狗 更新时间:2023-10-29 13:11:09 24 4
gpt4 key购买 nike

我不得不更改整个 android 应用程序的语言。我找到了一种将 strings 设置为 values 目录和 android:supportsRtl="true" 中的 strings-languagecode 的方法> 在 list 文件中,它很适合自动更改 text fields 的值及其方向 LTRRTL 但我遇到了问题在 EditText 字段中,因为它的方向需要由每个 xml 文件的 Java 代码更改和设置。有什么方法可以在整个应用程序中以最小的努力自动设置 EditText 的方向?请注意,我的项目中的最低 api 级别 15

最佳答案

您可以尝试这些方法来更改 RTL 或 LTR 布局方向。

对于从右到左:

例如。 locale : 阿拉伯语(ar), 希伯来语(he);

private void setRtl(){
String languageToLoad = "ar"; // rtl language Arabic
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);

Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
//layout direction
Bidi b = new Bidi(languageToLoad,Bidi.DIRECTION_DEFAULT_RIGHT_TO_LEFT);
b.isRightToLeft();
//save current locale in SharedPreferences
SharedPreferences languagepref = getSharedPreferences("language",MODE_PRIVATE);
SharedPreferences.Editor editor = languagepref.edit();
editor.putString("languageToLoad",languageToLoad );
editor.commit();

startActivity(...);// refresh activity.
}

从左到右:

ex locale : English(en), Tamil(ta), etc.

private void setLtr(){
String languageToLoad = "en"; // ltr language English
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);

Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
//layout direction
Bidi b = new Bidi(languageToLoad, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT);
b.isLeftToRight();
//save current locale in SharedPreferences
SharedPreferences languagepref = getSharedPreferences("language",MODE_PRIVATE);
SharedPreferences.Editor editor = languagepref.edit();
editor.putString("languageToLoad",languageToLoad );
editor.commit();

startActivity(...);// refresh activity.

调用这些方法来改变 RTL 或 LTR 布局方向。

关于java - 有什么方法可以自动设置所有布局以支持android中的RTL和LTR方向类型的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com