我使用的是android支持库,我不知道哪个版本,因为我不知道如何检查它。我面临的问题显然是android:textColor属性的值被忽略了。如果定义样式并将其分配给EditText的textAppearance,则将忽略textColor颜色。
因此,我有以下布局:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- This text should be red, but it is black -->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text color via TextAppearance"
android:textAppearance="@style/TextAppearance.EditText" />
<!-- The hint should be green, but it is grey -->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hint color via TextAppearance"
android:textAppearance="@style/TextAppearance.EditText" />
<!-- Text is red as set in android:textColor -->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text color via android:textColor"
android:textColor="#880000"
android:textSize="18sp" />
<!-- Hint is green as set in android:textColorHint -->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Hint color via android:textColorHint"
android:textColorHint="#008800"
android:textSize="18sp" />
</LinearLayout>
我定义了以下样式:
<!-- Text Appearance -->
<style name="TextAppearance.EditText" parent="">
<item name="android:textColor">#880000</item> <!-- this color is ignored -->
<item name="android:textColorHint">#008800</item> <!-- this color is ignored -->
<item name="android:textSize">18sp</item>
</style>
这是支持库中的错误还是我错过了什么?
最佳答案
沿线某处,正在拾取并应用textColor
的错误/默认值。您可以通过在XML中为android:textColor
设置android:textAppearance
来强制使用在android:textColor="@null"
中定义的EditText
。这对于android:textColorHint
也应该起作用。
(这将accepted answer反映到此post。)