アクティビティから ViewPager フラグメント メソッドにアクセスする
ViewPager は、単一アクティビティ内の複数のフラグメントの管理を容易にするために Android アプリケーションで広く使用されています。ただし、ホスト アクティビティからフラグメント メソッドに直接アクセスするのは困難な場合があります。この記事では、これを達成するための 2 つのアプローチについて説明しますが、それぞれに独自のトレードオフがあります。
最初のアプローチ: setUserVisibleHint を使用する
このアプローチは、次の場合に sendGetRequest() メソッドをトリガーします。断片が見えてきます。ただし、メソッド実行のタイミングにより、スワイプ アニメーションに顕著な遅れが生じる可能性があります。
2 番目のアプローチ: OnPageChangeListener を使用する
ViewPager の OnPageChangeListener を使用すると、さらに多くの効果が得られます。ページ遷移中にフラグメント メソッドにアクセスする正確かつタイムリーな方法。ホスト アクティビティ内の ViewPager にリスナーを追加すると、特定のフラグメント ページをターゲットにし、ページが選択されたときに sendGetRequest() などのメソッドを実行できます。
実装
2 番目のアプローチを効果的に実装するには、次の手順を実行する必要があります。
例
ViewPager.OnPageChangeListener listener = new ViewPager.OnPageChangeListener() { public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } public void onPageSelected(int position) { Fragment fragment = mainPagerAdapter.fragments[position]; if (fragment != null ) { if (fragment instanceof MyFragment) { ((MyFragment) fragment).sendGetRequest(); } } } }; viewPager.addOnPageChangeListener(listener);
注: Fragment オブジェクトが一般的な Fragment クラスのインスタンスでない場合は、そのオブジェクトを正しいクラスにキャストすることが重要です。これは、クラス固有のメソッドにアクセスするために必要です。
結論
OnPageChangeListener を利用すると、ホスト アクティビティから ViewPager フラグメントを制御および対話するための堅牢な方法が提供され、フラグメント ページの遷移に応じて、リクエストの送信、データの変更、またはその他の操作を実行します。
以上がアクティビティから ViewPager フラグメント メソッドにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。