更新FragmentPagerAdapter中的当前片段

时间:2013-04-18 11:04:59

标签: android android-viewpager fragmentpageradapter

我有一个带有标签指示符的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中创建片段会使其无效。

enter image description here

1 个答案:

答案 0 :(得分: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)中发生的事情。