Android ICS: удалить синий разделитель в ActionBar? - PullRequest
31 голосов
/ 02 января 2012

Я работаю над приложением, которое будет полноэкранным, но будет использовать некоторые функции ActionBar.С выпуском Ice Cream Sandwhich я вижу разделитель / разделитель синей линии как часть ActionBar.Обычно это было бы хорошо для согласованности, но в моем случае мне нужно удалить разделитель.

Как я могу удалить или стилизовать разделитель панели действий в ICS?

Попытался установить пользовательскую тему с "android: style / Widget.Holo.ActionBar" какродитель.Однако такие настройки, как приведенные ниже, не действуют

<item name="android:divider">#FFFFFF</item>

Ответы [ 4 ]

65 голосов
/ 04 января 2012

Графический актив, содержащий синюю нижнюю линию, является фоном представления контейнера панели действий и имеет значение @android:drawable/ab_transparent_dark_holo при использовании темы Holo Dark по умолчанию.

Чтобы удалить эту строку, вам нужно создать собственный стиль для вашей панели действий (на основе Widget.Holo.ActionBar или Widget.Holo.Light.ActionBar (или вариантов .Solid) и установить android:background на что-то, что не ' t включает нижнюю границу:

<style name="MyTheme" parent="android:Theme.Holo">
  <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="android:Widget.Holo.ActionBar">
  <item name="android:background">@drawable/your_background_here</item>
</style>

Примечание : панели действий Holo Dark / Light имеют сплошные и прозрачные стили; эта синяя линия появляется по умолчанию для прозрачного стиля. Панели действий Holo Dark по умолчанию прозрачны, а панели действий Holo Light по умолчанию сплошные.

2 голосов
/ 08 октября 2013

Вот простой способ удалить разделитель, работает из API 07 с помощью actionbarcompat из библиотеки поддержки:

@Override
public void onCreate(Bundle savedInstanceState) {
        //...
        getSupportActionBar().setBackgroundDrawable(
            getResources().getDrawable(R.drawable.whatever_you_want));
        //...
}  
1 голос
/ 15 июля 2014

Изменение темы деятельности на Theme.Holo.Light.DarkActionBar удаляет синюю линию.

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:textColor">@android:color/white</item>
</style>

Если вам все еще нужен черный фон, вы можете изменить android: windowBackground и / или android: textColor

0 голосов
/ 09 августа 2014

добавьте <item name="android:windowContentOverlay">@null</item> к теме вашего приложения.

...