android - 更新 - viewpager ページ数



FragmentPagerAdapterの現在のフラグメントを更新する (1)

私はタブインジケータを持つviewPagerを持っています。 ViewPagerはFragmentPagerAdapterを持つsetAdaperです。

私はFragmentPagerAdapterの内部がどのように動作するかをほとんど理解していません。 私は、隣人がまだ見えていないのに、隣人の断片が再開されていることに気付いた(OnResumeが呼ばれている)。

OnResumeの更新メソッドは、フラグメントが最新であれば更新されると考えています。

広告バナーの更新
一度左にスワイプするか一度右にスワップすると、フッターの広告バナーセットが更新されます。 隣の断片は再現されません(良いこと)。 しかし、onResumeは既にバナーのリフレッシュを避けるように呼び出されています。 loadBannerAdメソッドはOnResume()メソッドにあります。



フラグメント内のメソッドによって 、現在のフラグメントに対してのみメソッドloadBannerAd()を呼び出すにはどうすればよいですか?

編集:私はすでにmViewPager.setOnPageChangeListener()について知っている。

    OnPageChangeListener mOnPageChangeListener = new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
        // this method can be called before the fragment 's onCreateView()
        }

        ....
    };

しかし、フラグメントがまだ作成されていないと危険があります。 Activtyでフラグメントが作成されたかどうかを管理することで、そのフラグメントが破棄されます。


あなたは単に以下を使用します:

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int index) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        })

次に、 onPageSelected(int index)で何が起こるかを処理できます。





fragmentpageradapter