ViewPagerIndicator的使用

案例一:实现可滑动的标签栏

ViewPagerIndicator的使用_第1张图片

1. 添加布局

        <com.viewpagerindicator.TabPageIndicator
              android:id="@+id/indicator"
              android:layout_width="match_parent"
              android:layout_height="wrap_content" />
        <android.support.v4.view.ViewPager
              android:id="@+id/viewpager" />

2. 设置ViewPager(将indicator与ViewPager关联起来,ViewPager翻页,indicator也跟着变化,必须在setAdapter后关联)

mIndicator.setViewPager(mViewPager); //必须在ViewPager.setAdapter(adapter)之后调用

3. 设置主题

<activity android:theme="@style/Theme.PageIndicatorDefaults" />

4. 修改pager布局背景颜色,修改主题的字体颜色,背景图片等

5. 相关细节

侧滑菜单拦截了indicator触摸事件
<span style="color:#009900;">//indicator, 请求父控件及祖宗控件不要拦截事件</span>
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    getParent().requestDisallowInterceptTouchEvent(true);<span style="color:#009900;">//用getParent去请求,禁止父控件拦截</span>
    return super.dispatchTouchEvent(ev);
}

侧滑菜单拦截了ViewPager触摸事件
       |-- 自定义ViewPager,复写dispatchTouchEvent,代码同上
if( getCurrentItem > 0 ){
          getParent().requestDisallowInterceptTouchEvent(true); }//除了第一页可以滑出菜单,其他页菜单不能拦截

//indicator和viewpager绑定,此时滑动监听需要设置给indicator,否则无效
mIndicator.setOnPageChangeListener(this);

案例二:实现滚动圆点

<img src="http://img.blog.csdn.net/20160216180857567?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
1.参考框架里的sample,默认样式default就是滚动圆点,不想滚动用snap;
2.想要改变样式,最简单的方式是via layout,可参考SampleCircleStyledLayout的布局文件(复制命名空间,使用其自定义属性)
    命名空间   
     xmlns:app="http://schemas.android.com/apk/res-auto" 
    属性
     app:fillColor="#f00"<span style="color:#009900;"> //选中圆点颜色</span>
     app:pageColor="@android:color/darker_gray"<span style="color:#009900;"> //默认圆点颜色</span>
     app:radius="6dp"<span style="color:#009900;"> //圆点大小</span>
     app:strokeColor="#FF000000" <span style="color:#009900;">//边框颜色</span>
     app:strokeWidth="0dp" <span style="color:#009900;">//边框宽度</span>




你可能感兴趣的:(开源框架)