如何使用点指示器扩展 ViewPager2?

Mar*_*ler 0 java pagination android androidx android-viewpager2

我目前正在编写一份说明手册,该手册确实有页面 - 并使用ViewPager2.

到目前为止,我已经找到了 的点指示符ViewPager,但没有找到 的点指示符ViewPager2。我想提供更好的视觉反馈,以便人们一开始就可以看到有更多页面。如何以最少的努力使用点指示器扩展 ViewPager2?这不是对场外资源的请求 - 尽管我自己的答案使用了一个库。请随意添加更好(更轻量级)的答案。

Mar*_*ler 5

软件包me.relex:circleindicator支持ViewPager2并可在以下位置获得mavenCentral()

dependencies {
    implementation "androidx.viewpager2:viewpager2:1.0.0"
    implementation "me.relex:circleindicator:2.1.6"
}
Run Code Online (Sandbox Code Playgroud)

必须CircleIndicator3在 XML 中使用类:

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/pager"
    android:layout_weight="1.00"
    android:layout_width="match_parent"
    android:layout_height="0dp"/>

<me.relex.circleindicator.CircleIndicator3
    android:id="@+id/indicator"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    app:ci_width="5dp"
    app:ci_height="5dp"
    app:ci_margin="5dp"
    app:ci_orientation="horizontal"
    app:ci_gravity="center"/>
Run Code Online (Sandbox Code Playgroud)

和我的代码Fragment

@Override
@NonNull
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    /* Inflate the data-binding */
    this.mDataBinding = DialogManualBinding.inflate(inflater, container, false);

    /* FragmentStateAdapter */
    ManualPagerAdapter adapter = new ManualPagerAdapter(getChildFragmentManager(), getLifecycle());
    this.mDataBinding.pager.setAdapter(adapter);

    /* CircleIndicator3 */
    this.mDataBinding.indicator.setViewPager(this.mDataBinding.pager);

    /* Optional */
    adapter.registerAdapterDataObserver(this.mDataBinding.indicator.getAdapterDataObserver());

    return this.mDataBinding.getRoot();
}
Run Code Online (Sandbox Code Playgroud)