タブインジケーター付きのviewPagerがあります。ViewPager は、FragmentPagerAdapter を持つ setAdaper です。
FragmentPagerAdapter の内部がどのように機能するかはほとんどわかりません。隣接フラグメントがまだ表示されていないにもかかわらず、隣接フラグメントが再開されている ( OnResume が呼び出されている) ことに気付きました。
フラグメントが最新になると更新されると考えて、更新メソッドを OnResume に入れました。
広告バナーの更新
フッターに設定した広告バナーを、左に1回スワイプまたは右に1回スワイプすると更新されるようにしたい。隣接フラグメントは再作成されません (良いことです)。ただし、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()
}
....
};
ただし、フラグメントがまだ作成されていない場合は危険です。アクティビティでフラグメントが作成されたかどうかを管理すると、フラグメントの純粋なポーズが無効になります。