如何应用精确视图的主题?

Hos*_*BAR 1 android themes styles view

例如,当我在XML中定义样式标记时,所有类型的所有视图都会获得该主题.视图类型的样式之间是否有任何解决方案?这是一些代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="buttonTheme" parent="android:Theme.Holo">
        <item name="android:drawableLeft">@drawable/ic_launcher</item>
    </style>

    <style name="textTheme" parent="android:Theme.Holo">
        <item name="android:textColor">#ff0000</item>
    </style>

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

Dev*_*red 5

我认为风格和主题之间存在一点混淆.您正在讨论为应用程序中的窗口小部件定义自定义样式.主题是全局应用于活动或应用程序的这些样式的集合.您为按钮和文本视图创建的自定义样式可以应用于新的自定义主题,因此所有按钮和文本项共享相同的属性.

我认为你所寻找的是更像这样的东西.

<style name="ApplicationTheme" parent="android:Theme.Holo">
    <item name="buttonStyle">@style/MyButtonStyle</item>
    <item name="textAppearance">@style/MyTextAppearance</item>
</style>

<style name="MyButtonStyle" parent="android:Widget.Button">
    <item name="android:drawableLeft">@drawable/ic_launcher</item>
</style>

<style name="MyTextAppearance" parent="android:TextAppearance">
    <item name="android:textColor">#ff0000</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在这里,我们创建了两个新样式(一个用于按钮外观,一个用于默认文本外观),然后将它们作为属性应用于新的自定义主题中.您现在可以通过引用@style/ApplicationTheme或在您的清单或View构造函数中应用此主题R.style.ApplicationTheme