android - 如何应用主题以获得准确的 View ?

标签 android view styles themes

例如,当我在 XML 中定义一个样式标签时,所有类型的所有 View 都采用该主题。是否有任何解决方案可以解决 View 类型样式之间的差异?这是一些代码:

<?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>

最佳答案

我认为样式和主题之间存在一些混淆。您正在谈论为您的应用程序中的小部件定义自定义样式。主题是全局应用于 Activity 或应用程序的这些样式的集合。您为按钮和 TextView 创建的自定义样式可以应用于新的自定义主题,因此所有按钮和文本项都共享相同的属性。

我认为您正在寻找的是更像这样的东西。

<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>

在这里,我们创建了两种新样式(一种用于按钮外观,一种用于默认文本外观),然后将它们作为属性应用到新的自定义主题中。您现在可以通过引用 @style/ApplicationThemeR.style.ApplicationTheme

在 list 或 View 构造函数中应用此主题

关于android - 如何应用主题以获得准确的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598007/

相关文章:

Android OpenGL2.0 显示黑色纹理

java - Android 加密/解密 sqlite 数据库 100% 安全

C#/WPF : How do I separate structure from styles like in web programming?

c++ - 是否可以使用 WIN32 API 和 GDI+ (C++) 对工具提示进行样式化

android - 在 Android 中编写主题应用程序

android - Android:在手机移动时播放音频时,耳机上会听到喀嗒声

java - Android 应用程序 - 中心标题

Django 输出 pdf

java - 如何在代码中将 View 添加到线性布局的顶部?

php - 如何按列名分组并确保查询检索到最后更新