2012-01-02 3 views
31

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

Как удалить или стилизовать разделитель ActionBar в ICS?

Пробовал настраивать пользовательскую тему с помощью «android: style/Widget.Holo.ActionBar» в качестве родителя. Однако такие параметры, как один ниже, не имеет никакого эффекта

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

Это может помочь: http://stackoverflow.com/questions/6072226/how-to-style-the-menu-items-on-and-android-action-bar Кроме того, вы не забыли выбрать свой пользовательский тему в манифесте или ваш код? –

ответ

65

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

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

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

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

+0

отлично, это решило проблему – dparnas

+0

android: Theme.Holo только для API 11. Как это сделать для более старых API. – androidevil

+9

Примечание: установка ' @ android: color/transparent' будет удалять разделитель. –

2

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

@Override 
public void onCreate(Bundle savedInstanceState) { 
     //... 
     getSupportActionBar().setBackgroundDrawable(
      getResources().getDrawable(R.drawable.whatever_you_want)); 
     //... 
} 
1

Изменение темы активности в 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

-2

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

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