J'utilise la getChildFragmentManager()
dans une application compilant par rapport au niveau 19 de l'API, avec le SDK minimal défini à 14.
getChildFragmentManager()
a été introduit dans l'API 17, de sorte que les périphériques fonctionnant aux niveaux 14, 15 ou 16 de l'API émettront une NoSuchMethodError
lors de l'appel de la méthode.
J'ai parcouru toutes les autres questions de StackOverflow concernant ce problème, mais aucune ne semble répondre à cette question: existe-t-il un moyen de faire en sorte que la méthode getChildFragmentManager()
fonctionne sur les périphériques de niveau pré-API 17? Si c'est le cas, comment?
La méthode ne semble pas être incluse dans les bibliothèques de support v4 ou v13. J'ai essayé des versions propres avec les bibliothèques de support à la fois v4 et v13, mais cela ne semble pas résoudre le problème.
y a-t-il un moyen d'obtenir que la méthode getChildFragmentManager () fonctionne sur les périphériques de niveau pré-API 17? Si c'est le cas, comment?
Utilisez le backport de fragments du package de support Android (Android-support-v4.jar
, Android.support.v4.app.Fragment
).
La méthode ne semble pas être incluse dans les bibliothèques de support v4 ou v13.
Oui, il s'agit, sur FragmentActivity
, de la classe de base Activity
à utiliser pour pouvoir utiliser le backport de fragments.
C'est sur la classe Fragment
du backport, pour la gestion des fragments enfants de ce fragment.
J'ai essayé des versions propres avec les bibliothèques de support à la fois v4 et v13, mais cela ne semble pas résoudre le problème.
Soit vous n'avez pas changé pour le backport FragmentActivity
Fragment
ou les fichiers JAR de votre bibliothèque de support sont anciens. Voici un exemple de projet démontrant l'utilisation de le backport FragmentActivity
Fragment
et sa getChildFragmentManager()
.
Vous pouvez essayer le SupportFragmentManager à la place:
yourFragment = (YourFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.playListFragment)