更改区域设置,但保持从左到右和其他手机方向

问题描述 投票:0回答:4

我有一个有两种语言版本的应用程序 - 英语和希伯来语。

我使用翻译编辑器添加了希伯来语字符串,并且我根据用户选择更改区域设置。

更改区域设置时,它会像我想要的那样将字符串设置为希伯来语,但它也会将希伯来语的工具栏方向更改为从右到左,并将标题和后退按钮移至右侧。

英语区域设置(默认):

希伯来语区域设置:

有没有办法保持工具栏方向像英文一样? 我想保留工具栏左侧的后退按钮标题

编辑:

android:layoutDirection="ltr"
android:supportsRtl="false"
添加到
toolbar
xml 后。箭头是向后的。怎么解决?

android localization locale translation
4个回答
12
投票

更改区域设置,但保持从左到右和其他手机方向

具体来说,将

android:supportsRtl="false"
添加到
manifest 文件中的 
<application> 元素

了解更多信息链接


6
投票

将 android:layoutDirection="ltr" 添加到您的应用栏布局中。这将迫使 ltr 在任何布局方向上


3
投票

我也遇到这个问题了。我有一种方法可以更改语言的区域设置和应用程序配置:

private String loadPreference() {
    SharedPreferences shp = getSharedPreferences("CommonPrefs", Activity.MODE_PRIVATE);
    String language = shp.getString("Language","fa");
    Locale myLocale = new Locale(language);
    Locale.setDefault(myLocale);
    Configuration config = new Configuration();
    config.locale = myLocale;
    getResources().updateConfiguration(config, getResources().getDisplayMetrics());
    String locale = getResources().getConfiguration().locale.getDisplayName();
    System.out.println(locale);
    return locale;
}

它正在改变语言环境,同时改变layoutDirection,所以你可以通过手动设置方向来解决这个问题:

private String loadPreference() {
    SharedPreferences shp = getSharedPreferences("CommonPrefs", Activity.MODE_PRIVATE);
    String language = shp.getString("Language","fa");
    Locale myLocale = new Locale(language);

    Configuration config = new Configuration();
    config.setLocale(myLocale);
    //manually set layout direction to a LTR location
    config.setLayoutDirection(new Locale("en"));
    getResources().updateConfiguration(config, getResources().getDisplayMetrics());
    String locale = getResources().getConfiguration().locale.getDisplayName();

    return locale;
}

0
投票

使用约束布局来处理此类问题,如果你不想改变后退按钮的位置,请使用 应用程序:layout_constraintLeft_toLeftOf =“父级”或应用程序:layout_constraintRight_toRightOf =“父级”

但是如果您想在更改 Local 后更改 Button 或任何其他元素的位置,您可以使用 应用程序:layout_constraintStart_toStartOf =“父”或应用程序:layout_constraintEnd_toEndOf =“父”

© www.soinside.com 2019 - 2024. All rights reserved.