J'essaie de créer une application simple en utilisant la bibliothèque android-support-v7: 21.
Extraits de
code:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Mais au lieu de "Mon titre" dans la barre d'outils,% nom de l'application% est affiché.
On dirait que la setTitle
méthode n'a aucun effet.
Je voudrais montrer "Mon titre".
UPD:
Avant, styles.xml
était:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
J'ai donc pensé que la barre d'action n'était pas utilisée. J'ajoute NoActionBar
au style parent:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Mais le problème n'est pas résolu.
android
toolbar
android-support-library
Krossovochkin
la source
la source
Réponses:
Trouvé la solution:
Au lieu de:
J'ai utilisé:
Et il fonctionne.
la source
getSupportActionBar().setTitle("My title");
peut produire 'java.lang.NullPointerException'setSupportActionBar(mToolbar)
, vous obtiendrez bien sûr une exception nulle, mais si vous l'avez appelé, ignorez simplement ce message. Il suffit de lire - developer.android.com/training/appbar/setting-up.htmlPour toute personne qui doit configurer le titre via la barre d'outils quelque temps après avoir défini la barre SupportAction, lisez ceci.
L'implémentation interne de la bibliothèque de support vérifie simplement si la barre d'outils a un titre (non nul) au moment où le SupportActionBar est configuré. S'il y en a un, alors ce titre sera utilisé à la place du titre de la fenêtre. Vous pouvez ensuite définir un titre fictif pendant que vous chargez le vrai titre.
plus tard...
la source
this.setTitle("Title")
, oùthis
- est une référence à une activité.La réponse ci-dessus est totalement vraie mais ne fonctionne pas pour moi.
J'ai résolu mon problème avec les choses suivantes.
En fait, mon XML est comme ça:
J'ai essayé toutes les options et après tout, je viens de les supprimer
CollapsingToolbarLayout
car je n'ai pas besoin de les utiliser dans ce cas particulier.XML
Ainsi, mon XML final est comme:Maintenant, vous devez utiliser
setTitle()
comme la réponse ci-dessus:Maintenant , si vous souhaitez utiliser
CollapsingToolbarLayout
et enToolbar
même temps vous devez utilisersetTitle()
desCollapsingToolbarLayout
Que cela vous aide. Je vous remercie.
la source
CollapsingToolbarLayout
problème résoluCollapsingToolbarLayout
?Vous pouvez simplement changer n'importe quel nom d'activité en utilisant
la source
title = "Title"
en Kotlin ou peut-êtrethis.setTitle("Title")
en Java.Essayez ceci, vous pouvez définir le titre directement en XML:
la source
Pour définir le titre de chaque titre de fragment Navbar
la source
Essayez ceci .. cette méthode fonctionne pour moi .. !! j'espère que cela peut aider quelqu'un .. !!
Pour afficher le logo dans la barre d'outils, essayez l'extrait ci-dessous. // Set drawable
Faites-moi savoir le résultat.
la source
la source
Veuillez consulter https://code.google.com/p/android/issues/detail?id=77763 . Apparemment, c'est censé fonctionner comme ça. Une fois que vous appelez l'appel de
setSupportActionBar()
méthode, il incombe au délégué ActionBar de router l'appel vers la vue correcte.la source
J'ai essayé de renommer la barre d'outils du fragment
Cela m'a aidé, j'espère aider quelqu'un d'autre
Capture d'écran:
la source
Ce n'est pas seulement
.setTitle
plusieurs méthodes de Support Toolbar (Appcompat v7)
onCreate
ne fonctionnent qu'avecgetSupportActionBar().method()
et ne travaille pas avec
mToolbar.method()
exemples:
bien que les méthodes suivantes fonctionne très bien sans
getSupportActionBar()
enonCreate
Problème uniquement avec l'
onCreate
événement, vous pouvez toujours l'utilisermToolbar.setTitle()
plus tard au lieu d'être ennuyeuxgetSupportActionBar().setTitle()
, par exemple si vous ajoutez cela,onCreate
cela fonctionnera (car il sera exécuté plus tard, aprèsonCreate
)Je préfère utiliser cette solution https://stackoverflow.com/a/35430590/4548520 que https://stackoverflow.com/a/26506858/4548520 car si vous changez plusieurs fois de titre (dans différentes fonctions) il est plus confortable à utiliser
mToolbar.setTitle()
qu'un plus longgetSupportActionBar().setTitle()
et vous ne voyez pas de notification ennuyeuse sur l'exception nulle comme avecgetSupportActionBar().setTitle()
la source
Pour toute personne qui a besoin de configurer le titre via la barre d'outils quelque temps après avoir défini le SupportActionBar (@sorianiv) ET votre
Toolbar
est à l'intérieur d'unCollapsingToolbarLayout
, lisez ceci:Plus tard,
la source
Le titre de l'application ne s'affichera pas comme titre par défaut sur chaque activité, vous pouvez insérer un titre différent sur chaque activité. Sur votre fichier d'activité ci-dessous, onCreate suffit de coller une seule ligne pour définir le titre,
Modifiez simplement le texte "Votre titre ici" en votre texte.
la source
Utilisez-le simplement dans votre adaptateur, où MainActivity est votre AppCompactActivity. Appelez-le de n'importe où.
la source
Je l'ai fait fonctionner en utilisant -
la source
post
si vous changez de titre dans le fil d'interface utilisateur, ce qui, je pense, représente 90% des cas.Si vous utilisez
CollapsibleToolbarLayout
avec,Toolbar
vous devrez définir le titre dans les deux mises en pagedéfinir votre barre d'outils comme barre d'action dans la
onCreate
méthodePlus tard, mettez simplement à jour le titre de la barre d'outils en utilisant la
setTitle
méthodela source
Essaye ça:
Code Xml
Code Java
la source
Si votre objectif est de définir une chaîne statique dans la barre d'outils, la façon la plus simple de le faire est de simplement définir l'étiquette d'activité dans AndroidManifest.xml:
La barre d'outils obtiendra cette chaîne sans aucun code. (fonctionne pour moi avec les bibliothèques v27.)
la source
J'ai un comportement étrange qui peut vous aider.
Cela fonctionne mais cela n'a aucun effet dans onCreate uniquement:
Essayez d'utiliser ceci dans onCreate:
la source
Pour changer le titre de chaque activité différente
la source
la source
Bien que cela ne soit pas immédiatement pertinent pour cette configuration particulière, j'ai trouvé que la suppression de "CollapsingToolbarLayout" de mon XML qui enveloppait ma barre d'outils à l'intérieur d'un AppBarLayout faisait tout fonctionner.
Donc ça:
Au lieu de cela:
Ensuite, j'ai défini le titre dans onCreate de l'activité, avant d'appeler setSupportActionBar ().
la source
Cela peut être fait en définissant l'
android:label
attribut de votre activité dans leAndroidManifest.xml
fichier:Et puis ajoutez cette ligne à onCreate ():
la source
Assurez-vous d'ajouter cette option:
la source
La réponse se trouve dans la documentation (que vous pouvez trouver ici ):
C'est la solution que vous avez réellement trouvée. J'ai juste pensé à faire référence à la documentation officielle (que peu de gens ont apparemment tendance à lire).
la source
Dans Kotlin, vous pouvez le faire:
la source
Cela se produit car vous utilisez à la fois la barre d'outils et la barre d'action. Maintenant que vous souhaitez utiliser la barre d'outils comme barre d'action, la première chose que vous devez faire est de désactiver la barre d'action fournie par le décor.
Le moyen le plus simple consiste à étendre votre thème
Theme.AppCompat.NoActionBar
.la source