2012-07-05 645 views
3

我完成了我的应用程序的英文版本,现在我正在开发阿拉伯文本地化。阿拉伯语是一种从右到左的语言,所以我需要在我的布局中调整很多东西,包括我的微调器显示。Android:Spinner选择对齐左侧

当我选择从旋转选择菜单中的项目,我看到了下面,

Spinner selection

正如你所看到的“过敏”是左对齐,并在旋转箭头上。我需要它与右边对齐。

备注阿拉伯web服务尚未完成,这就是为什么图片中的数据仍然是英文的。

编辑

Spinner mSpecialtySpinner = (Spinner) findViewById(R.id.specialty_appointment_spinner); 
     ArrayAdapter<Specialty> adapter = new ArrayAdapter<Specialty>(AppointmentReservationActivity.this,android.R.layout.simple_spinner_item, specialities); 
     adapter.setDropDownViewResource(R.layout.spinner_item); 
     mSpecialtySpinner.setAdapter(adapter); 

回答

10

那么你可以有另一种布局微调,并把它传递给ArrayAdapter's构造函数。

使一个XML文件中的布局像这样命名spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:layout_width="fill_parent" 
    android:textSize="20sp" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 
    android:gravity="right" 
    /> 

,现在通过它在ArrayAdapter's构造是这样的:

new ArrayAdapter<String>(this,R.layout.spinner_layout,conversionsadd); 

请记住:

我们所提供as R.layout.spinner_layout in ArrayAdapter构造函数是Spinner的布局。我们将提供的作为setDropdownView()是Spinner项目(下拉项目)。

你可以在我的另一个亲戚答案看看here

+0

正是我需要的!太感谢了! – 2012-07-05 14:48:07

0

所有你需要做的就是创建一个新的微调下拉菜单布局和相应的插件设置android:gravity="right"

与调用它:

yourSpinner.setDropDownViewResource(R.layout.right_aligned_spinner_dropdown_item); 
+0

谢谢您的回答。如果你可以请检查我的其他帖子http://stackoverflow.com/questions/11341613/android-spinner-text-alignment-to-the-right-but-not-centered你会看到我使用的是android:gravity = “right | center_vertical”,但它只应用于下拉视图而不是未点击的微调视图。有任何想法吗? – 2012-07-05 13:13:33