5

无论我如何修改样式,红色箭头指向的框的背景颜色都不会从背景中改变。

图像

我如何改变这种颜色?我的目标是 4.0+,不关心 4.0- 设备和操作系统。

这是我的 styles.xml 文件的链接。抱歉,我不得不审查一些事情,因为这个项目处于 NDA 之下。

我尝试了很多事情,包括:

  • 换房android:background_windowTitleBackgroundStyle
  • 换房android:background_actionBarStyle
  • 换房android:background_actionBarWidgetStyle
  • 改变android:actionBarItemBackground

这些都不起作用。该文本视图似乎始终坚持android:background我的基本主题的价值,并且没有任何东西能够覆盖它。

我错过了什么或做错了什么?

4

4 回答 4

4

那么你需要用 windowBackground 改变 android:background

<style name="CCCBaseTheme" parent="@android:style/Theme.Holo">
    <item name="android:windowBackground">@color/nav_background</item>
    <item name="android:textColor">@color/text</item>

    <item name="android:actionBarStyle">@style/CCCWidgetActionBar</item>

</style>

希望这会有所帮助。

于 2015-07-14T21:57:54.027 回答
1

您可以自定义操作栏,并且可以根据需要更改标题背景颜色。

请按照以下步骤操作:

只有这样才能为 Title 制作 Custom Sherlock 栏。

为 App 上的标题创建单独的 xml 文件。

该文件包含这样的..

在这个自定义布局中,我们可以使用颜色代码更改背景颜色。

header_sherlock.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3"
android:background="#008000"
>

     <TextView
    android:id="@+id/header_tvleft"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="left"
    android:layout_marginTop="@dimen/margintop"
    android:clickable="true"
    android:paddingLeft="@dimen/layoutpaddingleft"
    android:text="Textview"
    android:textColor="#ffffff" 
    android:textSize="@dimen/header_leftbtn"
     /> 


 <TextView
    android:id="@+id/header_tvcenter"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:layout_marginTop="@dimen/margintop"
    android:layout_marginRight="@dimen/sherlockpaddingright"   
    android:layout_marginLeft="@dimen/sherlockpaddingleft"
    android:text="Textview"
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:textSize="@dimen/header_title"
     />

    <TextView
    android:id="@+id/header_tvright"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="right"
    android:layout_marginTop="@dimen/margintop"
    android:clickable="true"
    android:paddingRight="@dimen/layoutpaddingright"
    android:text="Textview"
    android:textColor="#ffffff"
    android:textSize="@dimen/header_rightbtn"
     />

</LinearLayout>

对于 MainActivity 或您要添加的活动 title :

            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    getSupportActionBar().setCustomView(R.layout.header_sherlock);
    header_tvleft = (TextView) findViewById(R.id.header_tvleft);
    header_tvleft.setText("LeftTitleName");
    header_tvcenter = (TextView) findViewById(R.id.header_tvcenter);
    header_tvcenter.setText("CenterTitleName");
    header_tvright = (TextView) findViewById(R.id.header_tvright);
    header_tvright.setText("RightTitleName");

试试这个方法。。

于 2013-07-17T13:14:50.423 回答
1

您的 xml 文件有一些有趣的部分:

<!-- ActionBar -->
    <style name="CCCWidgetActionBar" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:background">@color/nav_background</item>
        <item name="android:textColor">@color/nav_text</item>
        <item name="android:titleTextStyle">@style/CCCWidgetActionBarTitle</item>
        <item name="android:textViewStyle">@style/CCCWidgetActionBarTitle</item>

        <item name="android:windowTitleStyle">@style/CCCWindowTitle</item>
        <item name="android:windowTitleBackgroundStyle">@style/CCCWindowTitleBackground</item>
        <item name="android:windowBackground">@color/nav_background</item>
    </style>

只是改变 :

<item name="android:background">@color/nav_background</item>

经过

<item name="android:background">@color/pink</item>

或者其他任何颜色。

对我来说很好。

于 2013-07-17T12:18:03.577 回答
0

这是一个老问题,但我刚刚遇到了完全相同的问题——对我来说,问题是我有这个问题:

 <item name="android:actionBarItemBackground">@drawable/btn_dark</item>
 <item name="actionBarItemBackground">@drawable/btn_dark</item>

其中 btn_dark 是可重复使用的可绘制对象,用于定义启用、按下和禁用状态的颜色的通用按钮。它在较新的设备上运行良好,但在我的旧 2.3 手机上,标题的背景是灰色的。

有趣的是,禁用状态(我已将其设置为深灰色)在旧设备上应用于操作栏标题的背景。将禁用的颜色设置为透明是解决方法。

于 2014-04-23T20:14:37.657 回答