J'écris une application pour les tablettes 4.0 et 4.1, pour lesquelles je ne souhaite pas utiliser les bibliothèques de support (si ce n'est pas nécessaire) mais l'api 4.x uniquement par conséquent.
Ma plateforme cible est donc très bien définie comme:> = 4.0 et <= 4.1
L'application a une disposition à plusieurs volets (deux fragments, un petit à gauche, un fragment de contenu à droite) et une barre d'action avec des onglets.
Similaire à ceci:
Cliquer sur un onglet de la barre d'action change le fragment «externe», et le fragment interne est alors un fragment avec deux fragments imbriqués (1. petit fragment de liste à gauche, 2. fragment de contenu large).
Je me demande maintenant quelle est la meilleure pratique pour remplacer les fragments et en particulier les fragments imbriqués. Le ViewPager fait partie de la bibliothèque de support, il n'y a pas d'alternative native 4.x pour cette classe. Semblent être «obsolète» dans mon sens. - http://developer.android.com/reference/android/support/v4/view/ViewPager.html
Ensuite, j'ai lu les notes de publication pour Android 4.2, ce ChildFragmentManager
qui conviendrait bien, mais je cible les versions 4.0 et 4.1, donc cela ne peut pas être utilisé non plus.
ChildFragmentManager
n'est disponible qu'en 4.2
- http://developer.android.com/about/versions/android-4.2.html#NestedFragments
- http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager ()
Malheureusement, il n'y a guère de bons exemples qui montrent les meilleures pratiques pour l'utilisation de fragments sans la bibliothèque de support, même dans l'ensemble des guides du développeur Android; et surtout rien concernant les fragments imbriqués.
Je me demande donc: n'est-il tout simplement pas possible d'écrire des applications 4.1 avec des fragments imbriqués sans utiliser la bibliothèque de support et tout ce qui va avec? (besoin d'utiliser FragmentActivity au lieu de Fragment, etc.?) Ou quelle serait la meilleure pratique?
Le problème que je rencontre actuellement dans le développement est exactement cette déclaration:
La bibliothèque de support Android prend désormais également en charge les fragments imbriqués, vous pouvez donc implémenter des conceptions de fragments imbriqués sur Android 1.6 et versions ultérieures.
Remarque: vous ne pouvez pas gonfler une mise en page en un fragment lorsque cette mise en page comprend un fichier
<fragment>
. Les fragments imbriqués ne sont pris en charge que lorsqu'ils sont ajoutés dynamiquement à un fragment.
Parce que j'ai mis définir les fragments imbriqués dans XML, ce qui provoque apparemment une erreur comme:
Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_
Pour le moment, je conclus pour moi-même: même sur 4.1, quand je ne veux même pas cibler la plate-forme 2.x, les fragments imbriqués comme indiqué dans la capture d'écran ne sont pas possibles sans la bibliothèque de support.
(Cela pourrait en fait être plus une entrée de wiki qu'une question, mais peut-être que quelqu'un d'autre l'a déjà géré).
Mettre à jour:
Une réponse utile est à: Fragment Inside Fragment
ActionBar
(construit en interne par Samsung). Regardez de plus près ActionBarSherlock, il a les onglets dans l'ActionBar s'il y a de la place.