4

私は and を使用してFragmentStatePagerAdapterおりViewPager、デフォルトの開始ページは 0 です。任意のページ、たとえば 5 から開始したいと考えています。これが ViewPager の表示方法です。

viewPager.setAdapter(adapter);
viewPager.setCurrentItem(viewNumber, true);

ただし、ViewPager は最初にデフォルトの位置 (0) で作成され、次に目的の位置 (5) に切り替えられます。したがって、フラグメントは次の順序で作成されます: 0、1、4、5、6。

0 と 1 のフラグメントをまったく作成したくありません。どうすればこれを達成できますか?

4

1 に答える 1

1

どうすればこれを達成できますか?

のソース コードをViewPagerプロジェクトにコピーし、独自のパッケージにリファクタリングして、コードを適切に変更します。具体的には、何らかの新しい方法 (例: ) によって手動で要求するまでsetAdapter()、 のレイアウトまたは入力を試行しないように変更する必要があります。ViewPagerlisaWouldLikeYouToPopulateNowKThxBye()

サブクラスで保持しているフラグに基づいて実際にその作業を行わないように、サブクラス化とオーバーライドを回避できる場合ViewPagerがあります。populate()PagerAdaptersetCurrentItem()

または、放っておいてください。これを行うことでどのような利点が得られるかは不明です。まして、それらが forked のメンテナンスの頭痛の種になるかどうかは言うまでもありませんViewPager

于 2013-06-12T18:49:31.247 に答える