IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

ActionBarCustom et v4.4


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut ActionBarCustom et v4.4
    Bonjour à tous,

    Je poste ici car le soucis, graphique, concerne à priori la version 4.4 d'Android et seulement celle-ci.
    En effet sur Galaxy S3, Nexus 4, galaxy Ace et Wiko cink+, l'ActionBar custom est bien affichée alors que sur mon Nexus 5 en v4.4 l'ActionBar ne colle pas au bord gauche de l'écran...

    le code trés simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    private void initActionBar() {
            ActionBar actionBar = getSupportActionBar();
            actionBar.setDisplayShowHomeEnabled(false);
            actionBar.setDisplayShowCustomEnabled(true);
     
            mActionBarCustom = (ActionBarCustom) getLayoutInflater().inflate(R.layout.widget_actionbar,
                    null);
            mActionBarCustom.init();
            mActionBarCustom.setBtnMenuOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
                        mDrawerLayout.closeDrawer(mDrawerList);
                    } else {
                        mDrawerLayout.openDrawer(mDrawerList);
                    }
                }
            });
            mActionBarCustom.setBtnLoginOnClickListener(new OnClickListener() {
                [...]
            });
            actionBar.setCustomView(mActionBarCustom);
        }
    et le xml qui va avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <?xml version="1.0" encoding="utf-8"?>
    <com.widget.ActionBarCustom xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:appli="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="#3BA5B7"
        android:orientation="horizontal"
        >
     
        <ImageButton
            android:id="@+id/actionbar_btn_menu"
            android:layout_width="46dp"
            android:layout_height="46dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginBottom="2dp"
            android:background="@color/background_blue"
            android:contentDescription="@string/cd_actionbar_btn_menu"
            android:scaleType="center"
            android:src="@drawable/icon_menu" />
     
        <com.widget.roboto.TextView
            android:id="@+id/actionbar_title"
            android:layout_width="wrap_content"
            android:layout_height="46dp"
            android:layout_alignParentTop="true"
            android:layout_marginBottom="2dp"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp"
            android:layout_toLeftOf="@+id/actionbar_btn_login"
            android:layout_toRightOf="@+id/actionbar_btn_menu"
            android:background="@color/background_blue"
            android:gravity="center"
            android:textColor="@android:color/white"
            android:textSize="18sp"
            bpeek:robotoType="@id/roboto_bold" />
     
        <ImageButton
            android:id="@+id/actionbar_btn_login"
            android:layout_width="46dp"
            android:layout_height="46dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginBottom="2dp"
            android:background="@color/background_blue"
            android:gravity="center"
            android:src="@drawable/btn_off" />
     
    </com.widget.ActionBarCustom>

    Pour des versions antérieures à la 4.4 :

    Uploaded with ImageShack.com

    Et sur Nexus 5 (et donc en v4.4) :

    Uploaded with ImageShack.com


    Quelqu'un saurait comment corriger ce "décallage" de l'ActionBar sur Android 4.4?

    D'avance merci
    Gob.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Peut être en forçant les padding / margin à 0... il arrive souvent que le thème par défaut change d'une version à l'autre (il change même d'un device à l'autre parfois).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    Je viens d'essayer mais cela ne change rien :/

    quand on regarde l'ActionBar sur le rendu du N5, on voit le liseret continuer même dans le gris...

    Je me demandais:
    Ne serais ce pas dû à un composant comme un bouton (les 3 petits points pour les options en l'occurence) qui aurait fait son apparition "par défaut" dans l'actionBar à la 4.4 et qu'il nous faudrait donc implémenter/désactiver???

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 172
    Points : 70
    Points
    70
    Par défaut
    J'ai fini par trouver

    Il m'a fallu rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    actionBar.setDisplayShowTitleEnabled(false);
    qui n'était pas necessaire pour les versions antérieures à la 4.4

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo