以编程方式创建YouTubePlayerSupportFragment(Android)

问题描述 投票:1回答:1

我需要动态创建YouTubePlayer,我不能在YoutubeBaseActivity上扩展。所以我需要只创建YouTubePlayerSupportFragment。我试过这样做:

container_more_info_item - 我的linearLayout

//create video
        for(int j = 0; j < 5; j++) {
            final YouTubePlayerSupportFragment ysF = new YouTubePlayerSupportFragment();
            ysF.initialize("AIzbSyAT5C-xs5YG1HzG69Fn__PHq9DHXBuKpws", new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                    youTubePlayer.cueVideo("IjUlQU6yifk");
                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                }
            });

//this line error, because ViewGroup can not be applied com.google.android.youtube.player.YouTubePlayerSupportFragment
            container_more_info_item.addView(ysF);
        }

而现在我陷入了困境,无法想出一些东西

UPD:

我使用FragmentManager,但我有这样的消息:

无法解析方法'add(int,com.google.android.youtube.player.YouTubePlayerSupportFragment)

 //create video
        for(int j = 0; j < 5; j++) {
            final YouTubePlayerSupportFragment ysF = new YouTubePlayerSupportFragment();
            ysF.initialize("AIzaSyAT5C-xs5YG1HzG69Fn__PHq9DHXBuKpws", new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                    youTubePlayer.cueVideo("IjUlQU6yifk");
                }

                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                }
            });

            LinearLayout ll = new LinearLayout(this);
            ll.setOrientation(LinearLayout.HORIZONTAL);

            ll.setId(j);

            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragTransaction = fragmentManager.beginTransaction();
//Cannot resolve method 'add(int, com.google.android.youtube.player.YouTubePlayerSupportFragment)
            fragTransaction.add(ll.getId(), ysF);
            fragTransaction.commit();

            container_more_info_item.addView(ll);
        }
java android dynamic android-youtube-api
1个回答
1
投票

YouTubePlayerSupportFragment不是View它是Fragment

添加片段的过程与添加视图略有不同。

要添加片段:

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.your_fragment_container, ysF);
ft.commit();

https://developer.android.com/guide/components/fragments.html#Transactions

© www.soinside.com 2019 - 2024. All rights reserved.