(ActionBar) Onglets + Pager + de détails Fragments à l'intérieur ViewPager conteneur
Pour ActionBarSherlock je voudrais avoir (Barre d'Action) Onglets + Pager. J'utilise les Fragments à l'intérieur de téléavertisseurs conteneur. J'ai déjà eu des exemples de http://actionbarsherlock.com/ de travail, mais je n'arrive pas à obtenir un détails fragment à l'intérieur de téléavertisseurs conteneur lorsque je clic sur, disons, d'une listitem dans le premier fragment.
Il est impossible d'avoir quelque chose comme ceci:
Activité avec des Onglets et pager conteneur
- Un Fragment à l'intérieur de pager récipient sous Tab1
- Cliquez sur quelque chose dans Un Fragment et de montrer Fragment B dans la même pager récipient sous Tab1.
Fragment A est alors pas visible, seul Fragment B est visible, mais aussi tous les Onglets.
Pour le moment, je pense que d'une nouvelle activité (qui tiendrait du Fragment B à l'intérieur, il peut être commencé après avoir cliqué sur quelque chose dans le Fragment A.
- Pourquoi ne pas simplement utiliser viewpagerindicator avec un viewpager?
- Parce que je veux onglets. Je ne pense pas que ça compte si j'utilise des indicateurs ou des onglets pour cette question. Vous ne pouvez pas remplacer un fragment à l'intérieur d'un onglet / ou de l'indicateur comme le obsolète activitygroup fait avant.
Vous devez vous connecter pour publier un commentaire.
Voici ma solution pour l' (Onglets + Fragment + ViewPager) il fonctionne pour moi comme je le voulais,
espérons que fonctionne pour vous et vous
voici le fichier xml
voici le code MainActivity.java je vais poster le code qui convient seulement de sorte que vous aurez à gérer
et voici comment je traite avec des détails fragment n'est pas très efficace mais un peu de travail
ne pas enregistrer l'état de l'onglet à chaque fragment de ce conflit, nous le faisons déjà ici
EDIT:
Acclamé trop tôt. Maintenant, le details_container n'est pas un viewpager et je ne peux pas l'utiliser pour 'balayage des onglets.
Trouvé! Juste eu à définir deux FrameLayouts, avec dans la première, l'ViewPager et dans la deuxième les détails des fragments peut être "chargé". Ceci est accompli en ajoutant des fragments de façon dynamique et de les remplacer.
D'abord les deux FrameLayouts:
Puis remplacer un fragment de façon dynamique:
Très simple et je ne comprends pas pourquoi il m'a fallu des heures pour comprendre cela..
Je n'ai toujours pas trouver une possibilité d'avoir un Pager conteneur dans lequel les fragments doivent être chargés et maintenir l' (ActionBar) Onglets. J'ai cependant trouvé un vraiment sale solution-à-vis de cela, avec le départ intens (Activité Principale, avec des Onglets) et la finition de l'précédents lorsque le bouton retour n'a pas besoin de plus.
J'ai adapté le code de ABS: Soutien Démos - Onglets et Pager. Mais encore une fois c'est vraiment sale:
LoaderCursorSupport.CursorLoaderListFragment sous Tab2
ActionBarTabsPager (Activité Principale avec des Onglets)
À l'intérieur de cette Classe, il y a un TabsAdapter
Cela peut-il être fait de manière plus simple? Ou devrais-je renoncer à avoir des Onglets avec fragment de l'histoire? Cela a été fait avant d'Android 3.0 avec ActivityGroups et d'Activités, mais il semble que cela ne peut être fait avec des fragments.
J'ai trouvé un autre bon exemple de la même mise en œuvre de l'entendre... https://github.com/UweTrottmann/SeriesGuide
Dans cet exemple sous package com.battlelancer.seriesguide.l'interface utilisateur
vous pouvez trouver UpcomingRecentActivity.java et UpcomingFragment.java
et la mise en page upcoming_multipan.xml
cet exemple fonctionne pour moi...
J'ai eu un problème lors de l'ajout d'un contenu différent pour le détail des fragments de différents onglets, il me donne de la classe-cast-exception
j'ai donc mis en place un commun detalFragment classe et créé séparer la mise en page dans onCreateView méthode
mais le seul problème que j'ai trouvé est la mise en page n'est pas de changer sur l'onglet changé, peut-être besoin de le faire par la mise en œuvre de certains auditeur
Je vais vous dire, quand j'ai trouvé la réponse.