您的位置:首页 > 其它

ViewPagerIndicator的使用

2016-02-12 16:18 465 查看
案例一:实现可滑动的标签栏



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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息