根据语言选择对齐textview(LEFT -RIGHT)

时间:2013-02-06 12:01:21

标签: android android-layout android-linearlayout android-xml

我有一个线性布局,其中包含一个水平排列的textView和EditText。我可以选择在prvious活动中选择语言(英语和阿拉伯语)。当我选择英语时,当前的对齐方式很好,但是当我选择阿拉伯语时,它应该从右到左显示,这意味着textView位置应该在editText之后向右(在布局中它将从左开始)。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/darkblue_bg"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<EditText
android:id="@+id/editusername"
android:layout_width="196dp"
android:layout_height="wrap_content"
android:background="@drawable/textfield_default"
android:ems="10" >

</EditText>

<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

/>

</LinearLayout>

</LinearLayout>

任何人请给我解决方案......

3 个答案:

答案 0 :(得分:2)

如果你想在textview中同时使用阿拉伯语和英语,首先应该把它放在布局上:gravity =&#34; start&#34; 这可以帮助你,如果你有一个英文句子,它从左侧开始,阿拉伯语开始右手边的句子。 如果你想要它的组合,你必须像这样使用 阿拉伯字符串+ \ u200e \ u202a英文字符串+ \ u202c +阿拉伯字符串

相反:

myEnglish String +&#34; \ u202B&#34; + myArabicString +&#34; \ u202C&#34; +更多英语

答案 1 :(得分:1)

您可以通过将该布局放在适当的布局文件夹中来指定特定于语言的布局。我不知道阿拉伯语的代码是什么,但它应该是/layout-aa/

然而,今天更好的是使用相对布局,使用android:gravity="start"或类似的,根据语言方向对齐它,而不是严格左/右。这适用于API 14及更高版本。

答案 2 :(得分:0)

你可以使用android:layout_alignParentRight =&#34; true&#34;在textview中