带点的分页(在 Lollipop 上):ViewPagerIndicator 与 PagerSlidingTabStrip

Pagination with dots (on Lollipop) : ViewPagerIndicator vs PagerSlidingTabStrip

两者都有很多来源和示例。我需要一个带有点作为指示器的寻呼机,我正在使用 Android 5.0.

上的新 Studio

初看;

我倾向于使用 PagerSlidingTabStrip 但我不确定是否可以使用 'PagerSlidingTabStrip' 轻松配置带有小点的分页,据我所知,它主要是为选项卡设计的与标题。

这非常简单,您可以自己解决这里是一个示例。

在您的 ViewPager 下方添加一个 LinearLayout(@+id/indContainer),然后使用此代码设置点:

LinearLayout indContainer = (LinearLayout) findViewById(R.id.indicator_container);
    for(int x=0;x<yourData.size();x++){
        ImageView v = new ImageView(this);
        int px = (int)(4 * (getResources().getDisplayMetrics().densityDpi / 160));
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT);
        params.setMargins(px,0,px,0);
        v.setLayoutParams(params);
        v.setImageResource(R.drawable.indicator_inactive);
        indContainer.addView(v);
    }

然后在你的 pageChangeListener 中:

LinearLayout indContainer = (LinearLayout) findViewById(R.id.indicator_container);
((ImageView) indContainer.getChildAt(position)).setImageResource(R.drawable.indicator_active);
((ImageView) indContainer.getChildAt(lastPage)).setImageResource(R.drawable.indicator_inactive);
lastPage = position;

根据需要调整指标图标和大小