0

这可能是一个错误,或者我只是不明白为什么,但似乎inputType="textCapCharacters"在 a 上设置(或任何其他 inputType)EditText会使提示与gravity="center".

以下是我的 xml 的摘录,其中LinearLayout定义了下图中可见的内容:

a) 没有 inputType="textCapCharacters"

(...)
<LinearLayout 
    android:id="@+id/lin_cond1"
    android:layout_below="@id/v_cond_line1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:orientation="horizontal">
    <RadioButton 
        android:id="@+id/rb_cond_stake_normal"
        android:layout_width="0dp"
        android:layout_weight="15"
        android:layout_height="wrap_content"
        />
    <TextView 
        android:layout_width="0dp"
        android:layout_weight="25"
        android:layout_height="wrap_content"
        android:text="@string/define_stake"
        />
    <EditText 
        android:id="@+id/et_cond_enter_stake_normal"
        android:layout_width="0dp"
        android:layout_weight="20"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:gravity="center"
        />
    <EditText 
        android:id="@+id/et_cond_currencies"
        android:layout_width="0dp"
        android:layout_weight="40"
        android:layout_height="wrap_content"
        android:maxLength="3"
        android:gravity="center"
        android:hint="@string/currency"
        />
</LinearLayout>
(...)

结果

在此处输入图像描述

b) 有 inputType="textCapCharacters"

(...)
<LinearLayout 
    android:id="@+id/lin_cond1"
    android:layout_below="@id/v_cond_line1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:orientation="horizontal">
    <RadioButton 
        android:id="@+id/rb_cond_stake_normal"
        android:layout_width="0dp"
        android:layout_weight="15"
        android:layout_height="wrap_content"
        />
    <TextView 
        android:layout_width="0dp"
        android:layout_weight="25"
        android:layout_height="wrap_content"
        android:text="@string/define_stake"
        />
    <EditText 
        android:id="@+id/et_cond_enter_stake_normal"
        android:layout_width="0dp"
        android:layout_weight="20"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:gravity="center"
        />
    <EditText 
        android:id="@+id/et_cond_currencies"
        android:layout_width="0dp"
        android:layout_weight="40"
        android:layout_height="wrap_content"
        android:inputType="textCapCharacters"
        android:maxLength="3"
        android:gravity="center"
        android:hint="@string/currency"
        />
</LinearLayout>
(...)

结果

在此处输入图像描述

我尝试过但没有成功的方法:
- 将提示文本也用大写字母
- 放在inputType="textCapCharacters"不同的位置

什么有效,但不需要:
- (如这里所见)删除gravity="center". 但是为什么它不能仅在组合中起作用?离开正常gravity工作inputType

那么有什么解决方案可以同时拥有 inputType 和重力吗?

4

0 回答 0