ActionBar颜色更改也是ListView颜色

时间:2015-03-30 22:03:55

标签: android listview android-listview android-actionbar background-color

当我尝试通过

更改ActionBar的颜色时,我的应用程序中发生了一些奇怪的事情
<style name="CustomAppTheme" parent="Theme.AppCompat.Light">
    <item name="android:background">#ff00</item>
    <item name="android:textColor">#DCDCDC</item>
</style>

也会更改我的ListView的颜色,而其他活动会更改下面的整个内容。这是为什么?如何解决这个问题?

的ListView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/listviewbackground"
android:orientation="vertical" >

<ListView
    android:id="@+id/list"
    android:longClickable="true"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
</ListView>

1 个答案:

答案 0 :(得分:1)

在覆盖default color & styles of the action bar时,文档非常简单。我假设您可能正在 res / values / styles.xml 更改应用程序的资源样式文件。我还假设在您的 AndroidManifest.xml 中,您将以下属性应用于application标记:

android:theme="@style/AppTheme"

再次,来自documentation

  

样式是一组属性,用于指定视图或窗口的外观和格式。样式可以指定高度,填充,字体颜色,字体大小,背景颜色等属性。样式在XML资源中定义,该XML资源与指定布局的XML分开。

因此,当您更改 styles.xml 文件时,您无意中更改了应用中所有元素的背景颜色。

按照link 1的说明进行操作,您将会感觉良好。具体地,

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <!-- ActionBar styles -->
    <style name="MyActionBar"
           parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@drawable/actionbar_background</item>
    </style>
</resources>