Android: Comment faire pour centrer le titre dans la Barre d'outils
Je suis à l'aide de la Barre d'outils dans mon projet premier temps, donc je ne sais pas comment faire pour personnaliser la barre d'outils dans android. J'ai besoin de titre centré dans la barre d'outils et la façon de le faire s'il vous plaît dites-moi.
Remercie à l'avance.
Double Possible de Android barre d'outils du centre de titre et de police personnalisé
OriginalL'auteur Umesh Kumar Saraswat | 2015-04-04
Vous devez vous connecter pour publier un commentaire.
Rappelez-vous que
Toolbar
est juste unViewGroup
comme les autres. De sorte que vous pouvez farcirView
s en elle. Dans votre cas, vous avez besoin d'unTextView
à l'intérieur d'unToolbar
.Maintenant, définissez la
Toolbar
que votre barre d'action par le premier de la récupérer, puis à l'aide de lasetSupportActionBar()
.Puisque la gravité de la
TextView
est fixé àcenter
, le texte doit être centré.Dans mon cas, j'ai mis barre d'outils comme actionbar. Et j'ai une icône de navigation à gauche. Par ce moyen, le titre de la barre d'outils n'est pas en centre de plus. C'est décalé vers la droite peu. Comment résoudre ce problème?
Vous devez utiliser layout_gravity au lieu de gravité. la gravité définit la façon dont le contenu de vue de l'intérieur est placé à l'intérieur, où que layout_gravity raconte comment la vue doit être placé à l'égard de son parent.
essayez de régler la LARGEUR de votre textview pour WRAP_CONTENT et définir sa LAYOUT_GRAVITY au CENTRE. De cette façon, le textview centre de lui-même à l'intérieur de la mère, même avec le bouton home affiche.
Vous devez également définir la
gravity
etlayout_gravity
pour laToolbar
.OriginalL'auteur Little Child
Le problème avec le simple ajout d'un TextView dans la Barre d'outils alignés centre est d'ajouter des éléments de menu dans la barre d'outils qui décalage du texte centré.
Pour contourner ce problème, j'ai disposé les couches de texte en haut de la Barre d'outils, pas à l'intérieur. De cette manière, il n'a pas d'importance combien d'icônes que vous ajoutez, elle ne compensera pas le texte centré:
De cette façon, il n'est pas nécessaire pour une logique supplémentaire pour compenser le décalage de l'espacement des boutons de retour/menu de dépassement/des icônes de recherche etc. sur la barre d'outils, parce que le texte centré est au-dessus d'elle, pas à lui.
OriginalL'auteur jesobremonte
Vous pouvez forcer la barre d'outils vers le centre en les enveloppant de titre et de niveau de remplissage à droite qui a défaut de padding à gauche pour le titre. Ensuite, mettre la couleur de fond pour le parent de la barre d'outils et de cette façon, la partie qui est découpée en enveloppant le titre est de la même couleur(blanc dans mon exemple):
OriginalL'auteur tompadre
Barre d'outils est une Vue de Groupe. donc, Pour
Centre d'Aligner Le texte de
app_bar.xml
activity_sign_up
Avtivity
OriginalL'auteur Umesh Kumar Saraswat
Lorsque vous avez à la Maison ou bouton avec le centrage du titre, et le titre n'est pas plus centrée et se déplace légèrement vers la droite un peu, définissez votre textview largeur=wrap_content et layout_gravity=center
sauvé mon temps. merci
OriginalL'auteur Harry Aung
Juste mettre un autre
TextView
à l'intérieur deToolbar
n'est pas suffisant pour obtenir le titre centré par rapport à l'écran, sa position dépend d'autres éléments dans une barre d'outils (bouton de retour, les éléments de menu).Faire titre centré, vous pouvez définir manuellement sa position:
Étendre
android.support.v7.widget.Toolbar
classe et de faire des modifications suivantes:TextView
onLayout()
et définirTextView
emplacement de centre (titleView.setX((getWidth() - titleView.getWidth())/2)
)setTitle()
où le titre du jeu le texte dans le nouveau texte de la vueDans la mise en page que vous pouvez utiliser cette classe comme ceci:
Aussi, pour faire le nouveau texte de titre de ressembler à titre de standard, que vous devez appliquer
titleTextAppearance
style nouveauTextView
(titleView.setTextAppearance(context, textAppearanceStyleResId)
).avez-vous besoin de deux TextViews dans une barre d'outils (l'une centrée et un sur la position par défaut) ou tout simplement une coutume TextView sur la position par défaut? Si la deuxième option, il vous suffit de supprimer substituée
onLayout
méthode et personnalisertitleView
TextView ce que vous voulez dans un constructeur.J'ai besoin de deux textviews. Je ne veux pas supprimer la valeur par défaut de titre textview dans la barre d'outils pour être en mesure d'utiliser
toolbar.setTitle()
dans le code. Je veux ajouter un autre textview sur le dessus de cela. Mon but est d'animer entre les titres, quand j'ouvre le tiroir. Mon tiroir est nécessaire pour être en vertu de la barre d'outils, c'est pourquoi je suis en train de le faire. Merci pour la réponse btw.Avec le code de la réponse, d'origine TextView est toujours là, mais elle est vide parce que nous emportait
setTitle()
méthode sans appelsuper.setTitle()
.Si vous ajoutez
super.setTitle(title)
ligne, vous verrez deux identiques TextViews un par un. Et vous pouvez définir l'emplacement de la nouvelletitleView
dansonLayout()
.protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); TextView originalTitle = findOriginalTitleView(); if (originalTitle != null) { titleView.setX(originalTitle.getX()); titleView.setY(originalTitle.getY()); } }
OùfindOriginalTitleView()
méthode parcourt tous les enfants et tente de trouver l'original textViewOriginalL'auteur user2137020
La finale de l'INTERFACE utilisateur ressemble:
Pour mon projet, j'ai l'icône de navigation à gauche et les menus (plus de 1) à droite, et que vous voulez mettre le Titre au centre.
J'ai
setSupportActionBar(toolbar)
, et_actionBar.setCustomView(R.layout.actionbar_filter);
.Mon fichier de mise en page:
Ma barre d'outils s'étend android.de soutien.v7.widget de.La barre d'outils, puis (sorte de code) mesurer la taille de la RelativeLayout, enfin mise à horizental centre.
Joindre ma barre d'outils de mise en page. Peut-être que vous n'en avez pas besoin, je suis juste coller ici pour une personne de référence:
OriginalL'auteur LiuWenbin_NO.
Autant que la barre d'outils est un groupe affichage de sorte que vous pouvez créer des mises en page à l'intérieur .
Suivez ces étapes
1-Créer un textview à l'intérieur de votre Barre d'outils
2-faire à votre textview centre de gravité
OriginalL'auteur Kiarash
Vérifier la réponse complète ici: https://stackoverflow.com/a/35723158/445548
OriginalL'auteur Shatazone
Utilisation titre personnalisé (avec centre de gravité) à l'intérieur de la barre d'outils
voir mon edit
Cette chose que je sais. Votre réponse précédente était à l'aide de styles de sorte que j'avais disparu.
OriginalL'auteur ben10
Je ne vous comprend pas Question Complètement .. mais j'ai trouvé une Solution à ce
D'utiliser un titre personnalisé dans votre Barre d'outils tout ce que vous devez faire est de se rappeler est que la Barre d'outils est juste une fantaisie de ViewGroup de sorte que vous pouvez ajouter un titre personnalisé comme suit:
Cela signifie que vous pouvez le style de la TextView toutefois vous voulez parce que c'est juste un TextView. Donc, dans votre activité, vous pouvez accéder le titre comme suit:
hey check ce lien espère que cela serait utile stackoverflow.com/questions/26554996/...
OriginalL'auteur JayaSantoshKumar
ensemble collapsedTitleGravity au centre
OriginalL'auteur ZIRES
La meilleure solution sera d'utiliser un imbriquée
TextView
dans leToolBar
puis définissez lalayout_width
etlayout_height
àwrap_content
. Définissez ensuite lalayout_gravity
àcenter
. De cette manière, il n'est pas compensée par d'autres icônes dans latoolbar
.OriginalL'auteur kooldeji
Je pense que cela va fonctionner.
changer votre thème de base dans values/styles.xml
Que d'ajouter à votre Barre d'outils manuellement comme ceci
Mais ce n'est pas une bonne idée que cela ne fonctionne bien.
OriginalL'auteur NecroMancer
vous pouvez insérez ce code sur votre code
OriginalL'auteur younes