ActionBar (Support) avec le Fragment (support)
J'ai besoin d'utiliser une combinaison de barre d'action et de fragments dans une de mes applications android que les objectifs de pain d'épice trop. J'ai donc utilisé la barre d'action de la v7 bibliothèque de prise en charge et de fragments à partir de la v4 bibliothèque de prise en charge et de prolonger ma classe avec FragmentActivity.
J'obtiens une erreur lorsque je tape la ligne
actionbar = getSupportActionBar();
Le message d'erreur indique que getSupportActionBar() n'est pas défini pour le type myFragmentClass (mon nom de la classe). Le code fonctionne parfaitement sans le soutien de la bibliothèque. Est-il une solution à mon problème?
Merci!
- Vous avez importé le droit de la bibliothèque? android.de soutien.v7.app.ActionBar
- Je l'ai fait. J'ai Eu la barre d'action pour le travail. Le problème est survenu lorsque j'ai essayé d'inclure le fragment.
InformationsquelleAutor Anirudh | 2013-09-27
Vous devez vous connecter pour publier un commentaire.
Vous devez étendre ActionBarActivity au lieu de FragmentActivity avoir Actionbar avec des fragments.
Si vous êtes à l'aide de la v7 appcompat bibliothèque, votre activité doit plutôt s'étendre ActionBarActivity, qui est une sous-classe de FragmentActivity (pour plus d'informations, lire l'Ajout de la Barre d'Action).
Vous pouvez trouver plus d'info à la page indiquée ci-dessous.La ligne ci-dessus est tirée de la page ci-dessous(Dernier para).
http://developer.android.com/training/basics/fragments/creating.html
Modifier - Ce n'est pas un bug. Son juste un manque de connaissances. Parfois de base ne sont pas claires. Je suis actuellement en apprentissage, que trop de android site internet, et que j'ai à vous donner la réponse.
écrire ce code dans OnAttach() méthode:
ActionBarActivity est obsolète. Utilisation
actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
((AppCompatActivity) getActivity()).getSupportActionBar();
à la place.J'avais aussi essayé à l'aide de:
et ça ne fonctionne pas jusqu'à ce que j'ai fait cela:
De sorte qu'il fonctionne lorsque je lance à mon MainActivity.
pour android.de soutien.v7
À l'appel de l'ActionBar à l'intérieur d'un Fragment d'utiliser ceci:
Un Fragment n'a pas de ActionBar mais l'Activité. C'est pourquoi il faut l'appeler de cette façon.
Je l'ai essayé en étendant ActionBarActivity et de faire quelques changements dans AndroidManifest.xml
comme
android:thème="@style/Thème.AppCompat.La lumière">
et il fonctionne très bien pour moi
Pas besoin de faire tous les changements n'importe où, il suffit d'utiliser
getActionBar().setTitle(title)
au lieu degetSupportActionBar
lorsque vous utilisezFragmentActivity
. Ça fonctionne bien pour moi.