ViewPagerIndicator的使用

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


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="https://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>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值