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