Android Emulator

时间:2015-10-14 17:49:46

标签: java android-studio unicode android-emulator right-to-left

这是我第一次使用RTL语言(希伯来语)开发应用程序。我已经用逆转角色挣扎了两天。

My String XML:

<resources>
   <string name="app_name">SomeApp</string>

   <string name="hello_world">מה המצב?</string>
   <string name="action_settings">Settings</string>
</resources>

使用字符串hello_world我想创建一个将使用此字符串的textView。结果应该是:

  

?מההמצב

然而,模拟器显示:

emulator

正如您所看到的,它不仅会改变句子和问号的顺序。它也改变了字母的顺序。

到目前为止我尝试过的事情:

  1. API等级20及以上。有些地方暗示该问题在4.2版本后已知固定。
  2. 在开头或结尾或两个句子中使用标记\u200F
  3. \u200e",.?等每个特殊字符后使用!。当我写信时没有特别字符的希伯来语一切正常。
  4. activity_my.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"        android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MyActivity"
    android:id="@+id/StudentLife">
    
    <TextView android:text="@string/hello_world"             android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    
       </RelativeLayout>
    

    我已经四处寻找但没有任何作用,也许我错过了一些东西。

1 个答案:

答案 0 :(得分:2)

屏幕截图不是模拟器,而是Android Studio的可视化布局管理器。这似乎是布局管理器中的一个奇怪的错误,但它不会影响应用程序 - 无论是在模拟器上还是在真实设备上。

你是对的,Android 4.2之前的RTL支持没有标准化,有些设备可能以奇怪的方式执行。但即使是2.3.3的模拟器也没有为我恢复希伯来字母。

好吧,它没有在左侧放置 a != b ,您需要附加?来解决这个问题。但是对于4.2及更高版本,您可以指定\u200F而不是标记。