まず、次のリンクから ViewPagerIndicator を使用して、ビュー ページャー内のビュー数を表示しています: http://viewpagerindicator.com/
通常のコードだけで CirclePageIndicator を使用しました...私のXMLは次のようになります。
<FrameLayout
android:id="@+id/detailFragment"
android:name="detailFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/pageIndicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:fillColor="@android:color/black"
app:pageColor="@android:color/white"
app:radius="6dp"
app:strokeColor="@android:color/darker_gray"
app:strokeWidth="1dp" />
</FrameLayout>
アダプターとインジケーターを設定するための私の Java コードも特別なものではなく、以下に投稿されます (私のアクティビティ クラスから)。
final ViewPager pager = (ViewPager) this.findViewById(R.id.viewpager);
final DutyViewPager adapter = new DutyViewPager(this.getFragmentManager(), pkid, pager.getAdapter());
pager.setAdapter(adapter);
final CirclePageIndicator cIndicator = (CirclePageIndicator) this.findViewById(R.id.pageIndicator);
cIndicator.setViewPager(pager);
問題: たとえば、2 つの異なる ViewPagerAdapter にリンクされた 2 つの要素を持つナビゲーションがあるとします。最初の要素はアダプターAにリンクし、 2 つのフラグメントのカウントを表示し、2 番目の要素はアダプターBにリンクし、 3 つのフラグメントのカウントを表示します。最初の要素をクリックすると、ビューがアダプターAで更新され、アダプターから最初のフラグメントが読み込まれ、2 つの円がアダプター カウントとして表示されます。2 番目の要素をクリックした後、私のビューはアダプターBをロードしていますが、ビューにはまだ 2 つの円しか表示されていません。インジケーターが更新されていないか何かだと思います...右側にスワイプしてアダプター Bの次のフラグメントを表示すると、問題は修正されます。(スワイプすると3つの円が表示されます)
それは私だけなのか、それとも他の誰かがこの問題 (および解決策) を持っているのか疑問に思っていますか?