4

Je souhaite ajouter dynamiquement un fragment youtube dans mes fragments existants. Le code que j'ai utilisé est ci-dessous:Ajouter un fragment dans un fragment (fragment imbriqué)

 // setting the Youtube Player Dynamically 
private int setYoutubePlayer(String desc, View view, int prevID, 
     Bundle input) { 

    if (desc.indexOf("=") != -1) { 
     desc = desc.substring(desc.indexOf("=") + "=".length()); 
    } else { 
     return prevID; 
    } 

    final String url = desc; 

    LinearLayout videoLayout = new LinearLayout(view.getContext()); 
    videoLayout.setOrientation(LinearLayout.VERTICAL); 
    prevID++; 
    videoLayout.setId(prevID); 

    FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager 
      .beginTransaction(); 

    fragment.setVideoId(url); 
    LinearLayout itemLayout = (LinearLayout) view.findViewById(R.id.items); 
    itemLayout.addView(videoLayout); 

    fragmentTransaction.add(itemLayout.getId(), fragment, 
      "youtube fargment " + prevID); 

    fragmentTransaction.addToBackStack(null); 
    fragmentTransaction.commit(); 

    return prevID; 
} 

J'ai besoin d'obtenir le fragment youtube dans le fragment approprié. Comme j'ai vérifié quand toujours un nouveau fragment est chargé (quand balayez entre les fragments), le nouveau fragment interne doit être le premier fragment chargé.

Toute aide sera acceptée.

RESOLU: Merci Koby Vous aviez raison. j'ai dû remplacer "getActivity(). getSupportFragmentManager();" avec "getChildFragmentManager()". Le problème était apparemment la bibliothèque de Sherlock est venu avec une vieille bibliothèque de soutien android v4. J'ai dû mettre à jour la bibliothèque de support dans le Sherlock. Il a travaillé pour moi .....

Répondre

3

pour créer un fragment imbriqué dans un fragment, vous devez utiliser:

http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager()

appel du getChildFragmentManager() du fragment parent, et faire la transaction dans le parent pour imbriquer l'enfant à l'intérieur.

https://stackoverflow.com/a/13381825/1693674

me dire si vous avez besoin de plus d'aide à le faire ...

+0

Merci pour votre réponse. J'utilise (étendu) SherlockFragment et il ne permet pas getChildFragmentManager(), Dit undefined.Did faire quelque chose de mal .... –

+0

et aussi getParentFragment() dit undefine too.Do vous avez une idée pourquoi je reçois ce koby –

+0

Je ne suis pas un grand fan de SherlockFragment, mais essayons ... le SherlockFragment inclut-il le support.v4? sinon, vous pouvez le changer pour le faire, alors vous serez en mesure d'obtenir le childfragment .. (im tir dans le noir, donc si ça ne marche pas - télécharger du code et peut-être nous pouvons trouver d'autres solutions ..) – koby