Can';不要在Android中应用主题和样式

Can';不要在Android中应用主题和样式,android,themes,styles,Android,Themes,Styles,我已经搜索了几个小时的解决方案:如何将一个简单的主题或样式应用到一个应用程序、一个活动或只是一个视图?这似乎非常简单,但我的风格总是被忽视 以下是style.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <resources> <style name="master" parent ="@android:style/Theme.NoTitleBar"> <item name="an

我已经搜索了几个小时的解决方案:如何将一个简单的主题或样式应用到一个应用程序、一个活动或只是一个视图?这似乎非常简单,但我的风格总是被忽视

以下是style.xml中的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="master" parent ="@android:style/Theme.NoTitleBar">
        <item name="android:typeface">serif</item>
        <item name="android:textColor">#8b8378</item>
    </style>
</resources>

衬线
#8b8378
以下是AndroidManifest.xml中的代码:

<application android:icon="@drawable/icon" 
        android:label="@string/app_name"
        android:theme="@style/master">

和列表视图中的代码

<ListView android:layout_height="wrap_content" 
style="@style/master"
android:id="@+id/list" 
android:layout_width="fill_parent">
</ListView>

什么都不会发生。字体样式、颜色均保留默认值。仅通过显式声明属性,如

<TextView android:gravity="center" android:typeface="serif" android:textColor="#8b7d6b" android:textAppearance="?android:attr/textAppearanceSmall" android:id="@+id/text_intro" android:layout_height="wrap_content" android:text="@string/welcome_text" android:layout_width="wrap_content" android:padding="20sp" android:layout_weight="0"></TextView>

会有用的。我知道eclipse不支持主题和样式的预览,但它们在emulator上也不起作用


救命啊!我不敢相信我已经被这个小问题困扰了一个星期。。。提前谢谢你

这里有一些关于Android风格和资源的信息

Android样式是一种非常通用的工具,其结果是一些配置是可能的,但无效,将被忽略。您遇到了一些问题。:)

应用于视图时,样式将等同于在该视图上设置这些相同的属性样式不会层叠到子视图。
字体
文本颜色
在列表视图中无效,因此会被忽略。它们也不会以这种方式处理主题,因为主题为不同类型的视图提供默认样式。(为什么无效属性会被默默忽略,而不是生成错误?因为在以后的平台修订版中添加新属性时,旧设备应该忽略它们不知道如何解析兼容性的额外属性。)

完成你想做的事情的最佳方式可能是:

  • 为文本视图创建样式。(这不应该有像粘贴的代码那样是主题的父级。)
  • 使用
    style=
    语法将该样式应用于列表项布局中的文本视图

谢谢!你回答了这个问题。我之所以添加字体,是因为我想在整个应用程序中更改字体。除了以每种可能的样式说明字体外,还有什么方便的方法来实现它吗?您可以为主题中的一种小部件类型设置默认样式。这些属性通常遵循android:widgetClassNameStyle的命名约定。您可以将
android:textViewStyle
设置为自定义TextView样式,将其作为默认样式应用。