Comment obtenir de la Barre d'outils à partir de fragment?
J'ai ActionBarActivity
avec NavigationDrawer
et l'utilisation support_v7 Toolbar
comme ActionBar. Dans un de mes fragments de la barre d'outils a la vue personnalisée. En d'autres fragments Toolbar
doit afficher le titre.
Comment obtenir Toolbar
exemple pour la personnalisation à partir de fragments? Je peux obtenir de l'ActionBar avec getActivity().getActionBar()
, mais si je l'appelle setTitle()
de cette instance ActionBar il ne rien faire.
UPD:
Dans mon cas
((ActionBarActivity) getActivity()).getSupportActionBar().setTitle();
(comme MrEngineer13 dit) ne fonctionne pas du premier fragment de la création, parce que je l'appelle de onHiddenChanged(). Maintenant, j'ai ajouter un plus à onCreateView() et il fonctionne très bien.
- les fragments n'ont pas actionbars/barres d'outils, les activités d'
- (MainAcivity)cette.getActivity()).getToolbar(); sera la bonne réponse!! pour obtenir la Barre d'outils du fragment!!
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour lancer votre activité à partir de
getActivity()
àAppCompatActivity
premier. Voici un exemple:La raison pour laquelle vous avez jeté, c'est parce que
getActivity()
renvoie uneFragmentActivity
et vous avez besoin d'unAppCompatActivity
Dans le cas des fragments doit avoir une vue personnalisée de la Barre d'outils, vous pouvez mettre en œuvre la Barre d'outils pour chaque fragment séparément.
ajouter une Barre d'outils dans fragment_layout:
trouver du fragment:
menu auditeur pourrait être créé de deux façons:
remplacer onOptionsItemSelected dans votre fragment:
ou de l'auditeur pour la barre d'outils lors de la créer dans onCreateView():
AppCompatActivity
.onOptionsItemSelected()
au lieu de Fragment, afin d'éviter la répétition de code.Vous avez deux choix pour obtenir la Barre d'outils du fragment
Premier
et une seconde
Pour Kotlin utilisateurs
(activity as AppCompatActivity).supportActionBar!!.show()
Peut-être que vous avez essayer de
getActivity().getSupportActionBar().setTitle()
si vous utilisez support_v7.De votre Fragment: ( accéder à la Barre d'outils à partir de fragment?)
ceci est très utile lorsque vous êtes à l'aide de spinner dans la Barre d'outils et d'appeler la spinner ou personnalisé vues dans la Barre d'outils à partir d'un fragment de!
De votre Activité:
Vous pouvez créer une méthode pour cela sur votre classe d'Activité:
Et vous pouvez l'utiliser comme ceci:
Je l'ai fait à l'aide de cette procédure.
onCreateView
des principaux fragment.MainActivity
(Parent d'Activité) du fragment. Même si vous utilisez un bouton ou un élément de menu vous pouvez modifier le titre deonSelectedItemClickListener
, comme je l'ai fait dans mon cas.