Style de mise en page personnalisé Android ActionBar

Je commence à commencer le développement Android à partir d'IOS et à nouveau sur un problème. Et après 1 jour d'essai, j'ai décidé que je demanderais aux gens de débordement de pile.

Donc, mon problème:

J'ai une application et dans la barre d'action (par défaut sherlock) je veux 1 logo et 2 lignes de texte. Et à travers Internet, je place le setCustomView pour la barre d'action. Et le xml personnalisé est chargé, mais je ne peux pas obtenir la mise en page.

Donc, d'abord, je configure la barre d'action:

private void setupActionBar() { ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayUseLogoEnabled(false); actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowHomeEnabled(false); LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); View customNav = LayoutInflater.from(this).inflate(R.layout.actionbar, null); // layout which contains your button. actionBar.setCustomView(customNav, lp1); } 

Que le xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:orientation="horizontal" android:background="@color/Blue"> <TextView android:id="@+id/text_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title_menu" android:textColor="@color/White" android:paddingLeft="5dp" android:layout_gravity="left"/> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/Icon" android:layout_gravity="center"/> <TextView android:id="@+id/text_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/title_help" android:layout_gravity="right" android:textColor="@color/White" android:paddingRight="5dp"/> </LinearLayout> 

Mais le résultat est quelque chose que je ne cherche pas:

Problème dans une image

Alors, qu'est-ce que j'essaye / fais mal / ou dois-je faire?

  • TypeArray dans Android - Comment stocker des objets personnalisés dans xml et les récupérer?
  • Android scrollview supprimer la lumière bleue
  • Lecture et écriture de fichier XML
  • Android, envoyez et recevez XML via HTTP POST méthode
  • Hiérarchie de style dans Android - quel est l'ordre d'importance?
  • Réglage Android Largeur du bouton à mi-hauteur de l'écran
  • Comment supprimer les espaces blancs entre les balises en XML
  • Ligne de fichier XML binaire n ° 8: Erreur lors du gonflement du fragment de classe, Google Maps
  • 3 Solutions collect form web for “Style de mise en page personnalisé Android ActionBar”

    Essayez de modifier la disposition racine dans la disposition relative

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_horizontal" android:orientation="horizontal"> <TextView android:text="left text" android:layout_toLeftOf="@+id/icon" android:layout_alignParentLeft="true" android:id="@+id/text_left" android:gravity="left" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="5dp"/> <ImageView android:layout_centerHorizontal="true" android:id="@+id/icon" android:layout_width="10dp" android:layout_height="wrap_content" android:src="@drawable/bg_sunrise" android:layout_gravity="center"/> <TextView android:text="Right txt" android:layout_toRightOf="@+id/icon" android:id="@+id/text_right" android:layout_width="match_parent" android:gravity="right" android:layout_height="wrap_content" android:layout_gravity="right" android:paddingRight="5dp"/> </RelativeLayout> 

    Vous n'obtenez pas votre résultat parce que:

    Entrez la description de l'image ici

    Vous devez:

    1. Si vous utilisez le thème AppCompat

    Entrez la description de l'image ici

    1. Ajouter à votre mise en page

    Entrez la description de l'image ici

    1. Dans le code par exemple In onCreate () définissez une barre d'outils pour remplacer la barre d'action.

    Entrez la description de l'image ici

    Vous pouvez également utiliser LinearLayout comme root et ajouter android: weightSum et spécifier un layout_weight sur les trois vues enfants.

    Qu'est ce que android: weightSum dans Android, et comment ça marche?

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.