Android更改语言配置会扰乱布局

时间:2011-09-02 20:47:37

标签: java android locale hebrew right-to-left

所以我正在尝试为我的Android应用添加希伯来语支持。 我不得不将版本更改为2.2,因此它将内置希伯来字体。布局中的一些东西搞砸了,但我修复了它们。

但有一件事情已经离开了 - 出于某种原因,当强迫希伯来语语言环境时,我的一个布局变得混乱......不知道为什么。即使在两种语言环境(英语和希伯来语)中都使用相同的布局,它仍然会以这种方式混乱(但文本仍然保留在左侧)

这是正常布局(图表全屏显示)

Normal layout

这是混乱的一个:

Messed up layout

两个xml布局都相同,但是希伯来布局在textviews上设置了'android:gravity =“right”'。

以下是更改区域设置和配置的代码。在此之后立即调用'setContentView'。

        Locale locale = new Locale("iw");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config,  getBaseContext().getResources().getDisplayMetrics());

如果我已经问过了......有没有办法在Android中设置rtl阅读?正如您所看到的,希伯来语布局也弄乱了文本rtl。

我曾尝试使用rtl unicode字符\ u200f,但你可以看到它根本没有帮助....

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

我必须在清单中添加它:

  <supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:anyDensity="true"
    />

它有效。