Независимо от того, как я изменяю стили, цвет фона, на который указывает красная стрелка, просто не изменится с фона.
Как изменить этот цвет? Я нацелен на 4.0+ и не забочусь о 4.0-устройствах и ОС.
Вот ссылка на мой файл styles.xml . Извините, мне пришлось подвергнуть цензуре несколько вещей, поскольку этот проект находится под NDA.
Я пробовал много вещей, в том числе:
android:background
в windowTitleBackgroundStyle
android:background
в actionBarStyle
android:background
в actionBarWidgetStyle
android:actionBarItemBackground
Ни одна из этих работ не работает. Это текстовое представление, похоже, всегда придерживается значения android:background
из моей базовой темы, и ничто не могло его переопределить.
Что мне не хватает или что-то не так?
Ну, вам нужно изменить андроид: background with 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>
Надеюсь, это поможет.
В вашем 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>
Или любой другой цвет.
Прекрасно работает для меня.
Вы создаете пользовательскую панель действий и можете изменить цвет фона заголовка, что бы вы ни хотели.
Выполните следующие шаги:
Только для этого можно создать пользовательскую панель «Шерлок» для заголовка.
Создайте отдельный 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");
Попробуйте этот метод.
Это старый вопрос, но у меня была точно такая же проблема – для меня проблема заключалась в том, что у меня было это:
<item name="android:actionBarItemBackground">@drawable/btn_dark</item> <item name="actionBarItemBackground">@drawable/btn_dark</item>
Где btn_dark был повторно использован с возможностью рисования для общих кнопок, определяющих цвет для включенных, нажатых и отключенных состояний. Он отлично работает на новых устройствах, но на моем старом телефоне 2,3 я получал серый фон по названию.
Интересно, что состояние отключенного (для которого я установил темно-серый цвет) было применено к более старым устройствам на фоне заголовка панели действий. Исправлено определение цвета с отключенным цветом.