安卓:Spinner文本向右对齐但不居中

7
我完成了我的应用程序的英文版本,现在我正在进行阿拉伯语本地化。阿拉伯语是一种从右至左书写的语言,因此我需要调整布局中的很多东西,包括旋转选择器的显示。
我采用了与此处提到的相同方法 Android - Text is Pushed to the Left in a Spinner,但我将重力设置为右侧。
这是我的spinner_item.xml:
<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_width="fill_parent"
    android:gravity="right" />

我将代码从

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

转换为这样

adapter.setDropDownViewResource(R.layout.spinner_item);

我希望我的Spinner看起来像下面的旧英文Spinner, English spinner 但它现在看起来像这样, Arabic spinner 我该如何恢复以下内容:
1. 单选按钮 2. 更大的字体大小 3. 我想要它向右移,但位于两个分隔符之间的中心。
注意:阿拉伯语Web服务尚未完成,因此图像中的数据仍为英语。
更新:
尝试Adil Soomro的建议后,我得到了以下结果, Spinner semi-desired 没有单选按钮,并且边框和第一个字母之间有相当大的空间。
更新:
在Adil Soomro的编辑后,我现在拥有以下内容, Spinner Arabic Fixed
3个回答

6

您需要使用CheckedTextView,它可以解决您的三个问题。

您将放置一个类似于以下布局xml:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
    android:gravity="right|center_vertical"
    android:singleLine="true"
    android:layout_width="fill_parent"
    android:textSize="20dp"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:ellipsize="marquee" />

当使用CheckedTextView时,这个方法不再起作用了 :-| 而对于一般的TextView来说是可以的。 - Parissa Kalaee

1

试试这个:

android:layout_gravity="right"

0

修改你的代码

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_width="fill_parent"
    android:gravity="right" />

<TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        style="?android:attr/listPreferredItemHeight"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接