如何在水平滚动视图中滚动图像时制作圆形页面指示符?

时间:2016-09-26 17:10:09

标签: android android-layout

要使用圈子页面指示符,我应该使用哪些依赖项?

这是我的依赖文件:

compile 'com.android.support:appcompat-v7:24.1.0'
compile 'com.android.support:design:24.1.0'
compile 'com.android.support:cardview-v7:24.1.0'
compile 'com.android.support:support-v4:24.1.0'
compile 'com.android.support:palette-v7:24.1.0'
compile 'me.relex:circleindicator:1.2.1@aar'
testCompile 'junit:junit:4.12'

1 个答案:

答案 0 :(得分:0)

相反,我建议您在ViewPager的相同布局中使用简单的水平LinearLayout。并使用与ViewPager中的页面一样多的TextViews填充此LinearLayout。并将循环的html代码作为文本放入每个TextView中。只需使用textView.setText(Html.fromHtml("&#9675")); 然后在页面更改时动态更改所选圆的颜色,并在每个TextView上添加onClickListener以更改ViewPager上的页面。使用相同的想法here。注意方法 addBottomDots

private void addBottomDots(int currentPage) {
    dots = new TextView[layouts.length];

    int[] colorsActive = getResources().getIntArray(R.array.array_for_active_dot);
    int[] colorsInactive = getResources().getIntArray(R.array.array_for_inactive_dot);

    dotsLayout.removeAllViews();
    for (int i = 0; i < dots.length; i++) {
        dots[i] = new TextView(this);
        dots[i].setText(Html.fromHtml("&#8226;"));
        dots[i].setTextSize(35);
        dots[i].setTextColor(colorsInactive[currentPage]);
        dotsLayout.addView(dots[i]);
    }

    if (dots.length > 0)
        dots[currentPage].setTextColor(colorsActive[currentPage]);
}

每次更改网页时都会调用它:

 public void onPageSelected(int position) {
        addBottomDots(position);
        //... and so on, your code goes here
 }

希望它有所帮助。