Fragmentの本当のonPauseとonResume

1368 ワード

FragmentにはonResume()onPause()の方法がありますが、この2つの方法はActivityの方法で呼び出しタイミングもActivityと同じで、ViewPagerと組み合わせてこの方法を使うととても腹立たしくて、まったくあなたが望んでいる効果ではありません.ここで1つの方法を紹介します.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        // Fragment onResume
    } else {
        // Fragment onPause
    }
}
ViewPagerPageAdapterに関連するコードを読むことによって、Fragmentを切り替えることは、実際にはsetUserVisibleHintsetMenuVisibilityを設定することによって実現され、この方法を呼び出すときにFragmentを解放することはありません(すなわち、onDestoryViewは実行されません).