ViewPager的页面指示器可以通过设置imageview的visibility属性来实现指示器和页面的联动,java代码如下:
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// 改变三个小圆点
ImageView indicator1 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_1);
ImageView indicator2 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_2);
ImageView indicator3 = (ImageView) listheaderIcons.findViewById(R.id.iv_header_list_home_indicator_3);
indicator1.setImageResource(R.drawable.banner_dot);
indicator2.setImageResource(R.drawable.banner_dot);
indicator3.setImageResource(R.drawable.banner_dot);
// arg0%3让下标永远在0,1,2中变化
switch (arg0%3) {
case 0:
indicator1.setImageResource(R.drawable.banner_dot_pressed);
break;
case 1:
indicator2.setImageResource(R.drawable.banner_dot_pressed);
break;
case 2:
indicator3.setImageResource(R.drawable.banner_dot_pressed);
break;
}
//ViewPager的一次滑动完成,把处理上下动作的处理权还给ListView
listView.requestDisallowInterceptTouchEvent(false);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// ViewPager的滑动开始,希望ListView不要处理滑动过程中可能出现的上下小动作
listView.requestDisallowInterceptTouchEvent(true);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
xml代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="180dp"
android:background="#ffffffff"
android:orientation="horizontal" >
<android.support.v4.view.ViewPager
android:id="@+id/vp_header_list_home_icon_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="3dp"
android:layout_centerHorizontal="true"
>
<ImageView
android:id="@+id/iv_header_list_home_indicator_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:src="@drawable/banner_dot_pressed" />
<ImageView
android:id="@+id/iv_header_list_home_indicator_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:src="@drawable/banner_dot" />
<ImageView
android:id="@+id/iv_header_list_home_indicator_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:src="@drawable/banner_dot" />
</LinearLayout>
</RelativeLayout>