2013-07-17 3 views
5

Независимо от того, как я изменяю стили, цвет фона, на который указывает красная стрелка, просто не изменится с фона.Как изменить цвет фона названия ActionBar?

img

Как изменить этот цвет? Я нацелен на 4.0+ и не забочусь о 4.0-устройствах и ОС.

Вот ссылка на my styles.xml file. Извините, мне пришлось подвергнуть цензуре несколько вещей, поскольку этот проект находится под NDA.

я пытался много вещей, в том числе:

  • Изменение android:background в windowTitleBackgroundStyle
  • изменяющемся android:background в actionBarStyle
  • изменяющемся android:background в actionBarWidgetStyle
  • Изменение android:actionBarItemBackground

Ни одна из этих работ не работает. Это текстовое представление, похоже, всегда относится к значению android:background из моей базовой темы, и ничто не могло его переопределить.

Что мне не хватает или что-то не так?

+0

Используйте http://jgilfelt.github.io/android-actionbarstylegenerator для создания набора ресурсов и посмотрите, что там, что может быть актуально, что вы еще не пробовали. – CommonsWare

ответ

1

Существует interisting часть файла 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> 

или любой цвет другой.

Работы хорошо для меня.

+0

Не работает на моей Galaxy S II. Та же проблема, что и в вопросе. – chakrit

+0

В тексте заголовка не используется фон панели действий, а только стиль фонового рисунка приложения. Это делает невозможным изменение этого одного цвета без изменения цвета фона всего остального. – chakrit

+0

У меня такая же проблема тоже на моем Lenovo S880. Я подозреваю, что это проблема с устройством, однако приложение Google+ имеет приятный цвет панели действий на одном устройстве .. strange – Zyoo

1

вы делаете пользовательский Action-bar и можете изменить цвет фона заголовка, что бы вы ни хотели.

Выполните эти шаги:

возможно только для этого, чтобы сделать заказ Шерлока планку Title.

создать отдельный 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 или деятельность которого вы хотите добавить название:

  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"); 

Попробуйте thi метод.

+0

Можно сделать это без использования ActionBarSherlock и просто Android Android ActionBar? – chakrit

0

Это старый вопрос, но я только что был точно такой же проблема - для меня вопрос, что я имел это:

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

Где btn_dark был повторно использована вытяжкой для общих кнопок, задающих цвет для включенных, нажатых и отключенных состояний. Он отлично работает на более новых устройствах, но на моем старом телефоне 2,3 я получал серый фон по названию.

Интересно, что отключенное состояние (для которого я установил темно-серый цвет), было применено к более старым устройствам на фоне заголовка панели действий. Исправлено определение цвета с отключенным цветом.

4

Ну вам нужно изменить Android: фон с windowBackground

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

надеюсь, что это поможет.

+0

Ничего себе, через 2 года ха-ха. Я не уверен, что это правильное решение, поскольку я больше не могу тестировать его в контексте вопроса. Если кто-то еще придет и скажет, что это работает, я отмечу, как принято. – chakrit

+0

Хехе вчера я столкнулся с этой проблемой, я всегда использую пользовательскую панель действий: S .... Я тестировал ее (windowBackground), и она работает нормально :) –

Смежные вопросы