6

YouTube フラグメントを既存のフラグメントに動的に追加したいと考えています。私が使用したコードは以下のとおりです。

        // 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;
}

適切なフラグメントで YouTube フラグメントを取得する必要があります。常に新しいフラグメントがロードされるとき (フラグメント間をスワイプするとき) を確認したように、新しい内部フラグメントは最初にロードされるフラグメントである必要があります。

どんな助けも喜んで受け入れます。

解決済み: Koby さん、ありがとうございます。「getActivity().getSupportFragmentManager();」を置き換える必要がありました 「getChildFragmentManager()」で。問題は明らかに、Sherlock ライブラリに古い Android v4 サポート ライブラリが付属していたことです。Sherlock のサポート ライブラリを更新する必要がありました。それは私のために働いた.....

4

1 に答える 1

5

フラグメント内にネストされたフラグメントを作成するには、次を使用する必要があります。

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

親フラグメントから getChildFragmentManager() を呼び出し、親でトランザクションを実行して子を内部にネストします。

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

そのためにさらに助けが必要かどうか教えてください...

于 2013-08-14T06:12:48.487 に答える