問題:フラグメントが実際に表示される前に、フラグメントonResume()
インが実行されます。ViewPager
たとえば、ViewPager
との 2 つのフラグメントがありますFragmentPagerAdapter
。2 番目のフラグメントは承認されたユーザーのみが使用できるため、フラグメントが表示されるときにユーザーにログインを求める必要があります (アラート ダイアログを使用)。
ただし、ViewPager
最初のフラグメントが表示されているときに 2 番目のフラグメントを作成してキャッシュし、ユーザーがスワイプを開始したときに表示できるようにします。
したがって、onResume()
イベントは 2 番目のフラグメントで、表示されるずっと前に発生します。そのため、適切なタイミングでダイアログを表示するために、2 番目のフラグメントが表示された時点で発生するイベントを見つけようとしています。
これはどうすればできるのでしょうか?
ベストアンサー1
ViewPager でフラグメントがいつ表示されるかを判断する方法
setUserVisibleHint
をオーバーライドすることで、次の操作を実行できますFragment
。
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
}
else {
}
}
}