1. ホーム
  2. android

[解決済み] ViewPagerでFragmentが表示されるタイミングを決定する方法

2022-03-18 16:32:27

質問

問題:断片 onResume()ViewPager は、フラグメントが実際に表示される前に発行されます。

例えば、2つのフラグメントに ViewPagerFragmentPagerAdapter . 2番目のフラグメントは認証されたユーザーのみが利用可能で、フラグメントが表示されたときにユーザーにログインするよう求める必要があります(アラートダイアログを使用)。

しかし ViewPager は、2番目のフラグメントをキャッシュするために、1番目のフラグメントが表示されているときに2番目のフラグメントを作成し、ユーザーがスワイプを開始したときに表示されるようにします。

そのため onResume() イベントは、2 番目のフラグメントが表示されるずっと前に、2 番目のフラグメントで発生します。そのため、2番目のフラグメントが表示されたときに発生するイベントを見つけ、適切なタイミングでダイアログを表示させようとしています。

どうすればいいのでしょうか?

どのように解決するのですか?

<ブロッククオート

ViewPagerでFragmentが表示されるタイミングを決める方法

をオーバーライドすることで、次のようなことができます。 setUserVisibleHint の中で Fragment :

public class MyFragment extends Fragment {
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
        }
        else {
        }
    }
}