用作它们时不应用textColor

问题描述

| 我的样式包括textColor,textSize,textStyle和字体。当直接应用于EditText小部件时,文本的颜色是指定的(以及其他属性),但是当作为主题应用于活动或整个应用程序时,大小合适,但不应用颜色。我缺少什么?
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<resources>
    <style name=\"fap\" parent=\"android:Theme.Holo\">
      <item name=\"android:textSize\">24sp</item>
      <item name=\"android:textColor\">#FF0000</item>
      <item name=\"android:textStyle\">normal</item>
      <item name=\"android:typeface\">normal</item>
    </style>
</resources>
    

解决方法

EditText
小部件无法从活动主题获取这些参数。它从活动主题的
android:editTextStyle
参数获取其默认样式。因此,您必须创建自己的样式:
<style name=\"MyEditText\" parent=\"android:Widget.EditText\">
  <item name=\"android:textSize\">24sp</item>
  <item name=\"android:textColor\">#FF0000</item>
  <item name=\"android:textStyle\">normal</item>
  <item name=\"android:typeface\">normal</item>
</style>
然后在活动主题中将其设置为“ 1”样式:
<style name=\"fap\" parent=\"android:Theme.Holo\">
  <item name=\"android:editTextStyle\">@style/MyEditText</item>
</style>
希望这会成功,因为我没有尝试过此代码。     ,这很简单:您不会覆盖android默认样式,而是创建一个扩展了
android:Widget.EditText
的新样式。因此,不应用样式。 要更正此问题,请在主题定义中添加:
<item name=\"android:editTextStyle\">@style/fap</item>
现在,每当Android实例化一个EditText时,当它加载默认样式值时,它将找到您的
fap
样式。 编辑: 搜索android的源代码非常有用。检查https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/attrs.xml https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/themes.xml https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/styles.xml https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/widget/EditText.java 例如。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...