我有一个带有标签指示器的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)中发生的事情.