web-dev-qa-db-fra.com

Android ICS: Supprimer le séparateur bleu dans ActionBar?

Je travaille sur une application qui sera en plein écran, mais qui utilisera certaines des fonctionnalités du ActionBar. Avec la version Ice Cream Sandwhich, je vois que je reçois un séparateur/séparateur de ligne bleue dans le cadre de la barre d’action. Normalement, ce serait bon pour la cohérence, mais dans mon cas, je dois enlever le séparateur. 

Comment puis-je supprimer ou styliser le séparateur de la barre d'actions dans ICS?

J'ai essayé de définir un thème personnalisé avec "Android: style/Widget.Holo.ActionBar" comme parent . Cependant, des paramètres tels que celui ci-dessous n'ont aucun effet.

<item name="Android:divider">#FFFFFF</item>
31
dparnas

L'actif graphique contenant la ligne bleue inférieure constitue l'arrière-plan de la vue Conteneur de la barre d'action et est défini sur @Android:drawable/ab_transparent_dark_holo lors de l'utilisation du thème Holo Dark par défaut.

Pour supprimer cette ligne, vous devez créer un style personnalisé pour votre barre d'actions (basé sur Widget.Holo.ActionBar ou Widget.Holo.Light.ActionBar (ou les variantes .Solid) et définir le Android:background sur quelque chose qui n'inclut pas la bordure inférieure:

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

Remarque : Les barres d’action Holo Dark/Light ont des styles plein et transparent; cette ligne bleue apparaît par défaut pour le style transparent. Les barres d’action Holo Dark sont transparentes par défaut et les barres d’action Holo Light sont pleines par défaut.

65
Roman Nurik

Voici un moyen simple de supprimer le diviseur, fonctionne à partir de l'API 07 à l'aide de l'actionbarcompat de la bibliothèque de support:

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

Changer le thème d'activité en Theme.Holo.Light.DarkActionBar supprime la ligne bleue.

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

Si vous voulez toujours un fond noir, vous voudrez peut-être changer Android: windowBackground et/ou Android: textColor

1
repkap11