5

我有一个带有标签指示器的 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()
        }

        ....
    };

但是当片段还没有被创建的时候,就有危险了。在 Activity 中管理片段是否已创建会破坏它的纯粹性。

在此处输入图像描述

4

1 回答 1

6

您只需使用:

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).

于 2013-04-18T11:19:48.360 回答