Viewpager加载屏幕导致Fragment加载错误的数据

时间:2014-09-18 21:11:34

标签: android android-fragments android-youtube-api

我的每个页面都有一个offScreenLimit set to 5.的视图寻呼机,有一个youtube播放器片段。然而,它运行良好,它加载第5页的视频而不是第一页。

如果我在第1页,它会快速加载第1,2,3,4页,然后保持在5.我需要它才能加载与我所在页面相关联的视频。

我认为问题在于我创造了错误的观点。寻呼机上的每个视图都在加载正确的数据,但播放器片段除外

在我的视图寻呼机片段

我从onCreateView()

调用下面的方法
public void loadPlayer(final String trailerUrl) {

    YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment
            .newInstance();
    getChildFragmentManager().beginTransaction()
            .replace(R.id.youtube_fragment, youTubePlayerFragment).commit();

        youTubePlayerFragment.initialize(Utils.DEVELOPER_KEY,
                new OnInitializedListener() {

                    @Override
                    public void onInitializationSuccess(Provider arg0,
                            YouTubePlayer player, boolean wasRestored) {
                        if (!wasRestored) {
                            player.cueVideo(trailerUrl);
                        }
                    }

                    @Override
                    public void onInitializationFailure(Provider arg0,
                            YouTubeInitializationResult errorReason) {
                    }

                });

}

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并且能够通过在片段中使用setUserVisibleHint(boolean isVisibleToUser)方法来解决它。您应该覆盖此方法并将其用作指示您的片段当前可见(如果isVisibleToUser为真)。因此,如果使用isVisibleToUser==true调用此方法,则可以调用loadPlayer方法。