android - 仅显示 5 个点指示器,供我需要隐藏的剩余 viewpager

标签 android kotlin viewpagerindicator

我为viewpager添加了点指示器,在该 View 页面中,当我有15个数据时,点指示器也显示15个点。但我不希望只需要显示 5 个点指示器,即使我的 View 寻呼机中有 20 个数据

 private fun setUpTabs(binding: FragmentHomeBinding, viewpager: ViewPagerAdapter) {
    binding.viewPagerNews.adapter = viewpager
    binding.indicatorContainer.setViewPager(binding.viewPagerNews)
}

enter image description here 我需要这样显示

enter image description here 我就这样了

最佳答案

您可以使用ScrollingPagerIndicator一次仅显示 5 个点,并使其在用户滑动页面时可滚动。

依赖

implementation "ru.tinkoff.scrollingpagerindicator:scrollingpagerindicator:1.2.0"

布局

<androidx.viewpager.widget.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<ru.tinkoff.scrollingpagerindicator.ScrollingPagerIndicator
    android:id="@+id/indicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:spi_dotColor="@color/red"               // unselected dot color
    app:spi_dotSelectedColor="@color/teal_200"  // selected dot color
    app:spi_visibleDotCount="5"                 // max dot to be visible
    app:spi_dotSize="5dp"                       // dot sizes
     />

将指示器附加到您的Viewpager

ViewPager pager = findViewById(R.id.pager);
pager.setAdapter(new DemoPagerAdapter());
ScaledDotsIndicator indicator = findViewById(R.id.indicator);
indicator.attachToPager(pager);

您还可以将其与 ViewPager2RecyclerView 一起使用。

使用指示器设置 ViewPager2

    ViewPager2 pager2 = findViewById(R.id.pager2);
    DemoRecyclerViewAdapter pagerAdapter2 = new DemoRecyclerViewAdapter();
    pager2.setAdapter(pagerAdapter2);

    ScrollingPagerIndicator pagerIndicator2 = findViewById(R.id.pager_indicator2);
    pagerIndicator2.attachToPager(pager2);

enter image description here

关于android - 仅显示 5 个点指示器,供我需要隐藏的剩余 viewpager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70270330/

相关文章:

android - 如何在 Intellij 中获取真实设备的屏幕截图?

android - 如何将多个历史数据添加到 Google Fit

kotlin - 如何使用mock来模拟一个新对象

java - 有更多 viewpagerindicator 的示例/样本/教程吗?

java - 如何在选择相应的标签栏时跳转到 Fragment

java - 我找不到教程中显示的 android.jks 文件

android - 是否有针对 Android 设备的设备特定错误的汇编?

android - 如何将推送通知用于受信任的 Web Activity

Android:Exoplayer - ExtractorMediaSource 已弃用

android - Android mobile (not wear) 是否有默认的 DotsPageIndicator?