通过自定义textColor
样式设置textAppearance
属性时,是否有任何原因会被忽略?
<style name="EditTextAppearance" parent="@android:style/TextAppearance.Widget.EditText">
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/blue</item> <!-- IGNORED -->
</style>
在XML中设置样式:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/EditTextAppearance"
/>
由于某种原因,默认主题控件颜色不会被此样式覆盖。
我能够设置颜色的唯一方法是通过在
textColor
中设置EditText
属性(但这不是我想要的):<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/EditTextAppearance"
android:textColor="@color/blue"
/>
注意,为
textAppearance
创建的带有textColor
的自定义TextView
可以正常工作。我试图用
EditText
或android.support.v7.widget.AppCompatEditText
替换android.support.design.widget.TextInputEditText
,但结果是相同的。还是行不通。因此,问题不在EditText
实现中。我发现了与Why is textColor in android:textAppearance ignored?相同的问题。不幸的是,没有答案。
最佳答案
沿线某处,正在提取并应用textColor
的错误/默认值。您可以通过在XML中为android:textColor
设置android:textAppearance
来强制使用在android:textColor="@null"
中定义的EditText
。