Tsu*_*aze 3 xml android android-theme
我试图在我的所有应用程序中放置一种样式,所以我创建了一个包含我的样式的主题:
<resources>
<style name="MyTheme" parent="android:Theme.Holo.Light">
<item name="android:textAppearance">@style/subtitle</item>
</style>
<style name="subtitle parent="@android:style/TextAppearance">
<item name="android:textColor">@color/purple</item>
<item name="android:textSize">40sp</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
但textAppearance不起作用它保持不变,但是当我textColor在我的主题中放入类似的东西时,它起作用了
这是一个相当古老的问题,但答案可能对某人有所帮助。解决这个问题的关键在于这里的“样式技术的优先顺序”:?
顶部是最高优先级,底部是最低优先级。
正如我们所看到的theme具有最低优先级,在您的示例中,您的android:textAppearance属性被default style接受此属性的每个视图的覆盖,默认样式属性在每个接受此属性的特定视图中定义,在这种情况下android:Theme.Holo.Light提供textView as android:textViewStyle...的默认样式是android:buttonStyle(继承textAppearance自 TextView),依此类推。
因此,如果您尝试将该android:textAppearance属性应用于 TextVew,则应使用 <item name="android:textViewStyle">@style/subtitle</item>而不是<item name="android:textAppearance">@style/subtitle</item>inside MyTheme。远离这是设置android:textViewStyle为null,这样您当前的代码将与textViews一起正常工作<item name="android:textViewStyle">null</item>
这篇文章更深入地解释了这个优先级:
https://medium.com/androiddevelopers/whats-your-text-s-appearance-f3a1729192d
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |