Je ne parviens pas à centrer le bouton Précédent de la barre d’outils du support technique… .. Je l’utilise dans une ActionBarActivity.
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:toolbar="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?attr/colorPrimary"
Android:minHeight="?attr/actionBarSize"
toolbar:popupTheme="@style/ThemeOverlay.AppCompat.Light"
toolbar:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Et configurez la navigation dans la onCreate()
de l'activité comme suit:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.title_activity_scanner);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Cependant, voici ce que je veux dire: Comme vous pouvez voir le bouton de retour est égaré
Edit: Le problème semble résider dans une valeur personnalisée pour ?attr/actionBarSize
défini sur 40dp, mais il s'avère maintenant que c'est le titre qui est égaré.
Depuis le developer.Android.com :
La barre d'outils prend en charge un ensemble de fonctionnalités plus ciblé que ActionBar. Dès le début pour finir, une barre d’outils peut contenir une combinaison des éléments facultatifs suivants éléments:
Un bouton de navigation. Cela peut être une flèche vers le haut, une bascule dans le menu de navigation, fermer, effondrer, terminé ou un autre glyphe choisi par l'application. Ce Ce bouton doit toujours être utilisé pour accéder à d'autres destinations de navigation dans le conteneur de la barre d’outils et son contenu signifié ou sinon, laissez le contexte actuel indiqué par la barre d'outils. Le bouton de navigation est aligné verticalement dans le minimum de la barre d’outils. hauteur, si définie.
Ainsi, si vous définissez l'attribut minHeight de la même manière que la hauteur de votre barre d'outils (layout_height), la flèche arrière sera centrée verticalement.
Inside ActionBarActivity
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBat().setTitle("Hello World");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
Code de mise en page:
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="@color/primary"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/Theme.AppCompat"/>
Et style:
<style name="AppTheme.Base" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
<style name="AppTheme" parent="AppTheme.Base">
Rappelez-vous que la barre d’outils n’est qu’un groupe de visualisation, vous pouvez donc l’appeler de la même manière que ..... Voici un lien d’image: exemple de barre d’outils
J'espère que ça aide.
Pour y parvenir, le meilleur moyen consiste à supprimer le bouton Précédent de la barre d'outils, à ajouter un bouton ImageButton personnalisé à votre présentation XML et à y définir une image. Vous pouvez placer ce ImageButtton où vous voulez dans la barre d’outils.
Le code de présentation de votre activité devrait ressembler à ceci.
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<include
Android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ImageButton
Android:layout_width="60dp"
Android:layout_height="60dp"
Android:id="@+id/button"
Android:src="@drawable/attach_icon"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true" />
</RelativeLayout>
@Rick Sanchez répond, c'est du travail, configurez layout_height de la barre d'outils comme minHeight
J'ai trouvé dans le constructeur de la barre d'outils avoir un champ peut configurer la gravité du bouton, mButtonGravity = a.getInteger(R.styleable.Toolbar_buttonGravity, Gravity.TOP);
, mais v7 support Toolbar ne peut pas configurer, mButtonGravity = Gravity.TOP;
Piggybacking sur @Rick Sanchez answer - si vous connaissez la taille de l'attribut minHeight
de la barre d'outils, vous pouvez alors utiliser:
Android:gravity="top"
app:titleMarginTop="@dimen/margin_to_center"
dans la barre d’outils pour centrer le texte. Si vous utilisez Android:minHeight="?actionBarSize"
, ce serait environ 13p
Pour moi, aucune des solutions n'a fonctionné. Dans mon cas, le problème était la marge que j'ai appliquée:
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
... >
<View
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="10dp"
Android:layout_marginTop="10dp" />
</Android.support.v7.widget.Toolbar>
Après l’avoir appliqué à la barre d’outils directement, le bouton était centré verticalement:
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="10dp"
Android:layout_marginTop="10dp"
... >
<View
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</Android.support.v7.widget.Toolbar>
définissez la taille de votre bouton 56dp
et réglez scaleType
sur center
sans marges sur Appbar
Assurez-vous que votre icône correspond aux dimensions 24x24