Android将样式应用于自定义TextView

Ian*_*ink 15 android themes textview

我有一个TextViewStyled类,它扩展了TextView

在我的主题XML中,如何将样式应用于具有所选主题的活动上的所有TextViewStyled小部件?

我有这个简单的主题,但我想将Black Gold样式限制为TextViewStyled Widgets,而不在TextViewStyled样式属性中指定Black Gold.这是将动态切换的众多主题之一:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyThemeOneofMany" parent="android:Theme.NoTitleBar.Fullscreen">
    <item name="android:???????????">@style/TextViewStyled_Black_Gold</item>
    </style>

    <style name="TextViewStyled_Black_Gold" parent="@android:style/Widget.TextView">            
          <item name="android:background">#1E1921</item>        
          <item name="android:textColor">#A85E4F</item>
          <item name="android:textColorLink">#FFBC4F</item>
          <item name="android:textStyle">normal</item>               
      </style>


</resources>
Run Code Online (Sandbox Code Playgroud)

Gen*_*kin 17

对于AppCompat主题(2.3.3+):

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textViewStyle">@style/PizzaSizeWidget</item>
    </style>

    <style name="CustomTextView" parent="@android:style/TextAppearance.Widget.TextView">
        <item name="android:background">#1E1921</item>
        <item name="android:textColor">#A85E4F</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textSize">93sp</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

  • 应该是`CustomTextView`而不是`PizzaSizeWidget`? (2认同)

Ian*_*ink 2

textview我发现在事件结束后覆盖基类时更新样式是有效的inflation

  • 你能提供一下代码吗,你是怎么做到的?或者你放了什么???标记 &lt;style name="MyThemeOneofMany"parent="android:Theme.NoTitleBar.Fullscreen"&gt; &lt;item name="android:????????????"&gt;@style/TextViewStyled_Black_Gold&lt;/item&gt; &lt;/风格&gt; (2认同)