ViewPagerIndicator使用
16lz
2021-12-04
1. 引入ViewPagerIndicator库
com.viewpagerindicator.TabPageIndicator android:id="@+id/indicator" android:layout_width="fill_parent" android:layout_height="wrap_content" />
3. mIndicator.setViewPager(mViewPager);//将viewpager和mIndicator关联起来,必须在viewpager设置完adapter后才能调用
4. 重写PagerAdapter方法,返回页面标题
/**
* 重写此方法,返回页面标题,用于viewpagerIndicator的页签显示
*/
@Override
public CharSequence getPageTitle(int position) {
return mNewsTabData.get(position).title;
}
5. 自定义样式修改
找到所使用的indicator源码,进行样式修改一般使用的是TabPageIndicator
@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {getParent().requestDisallowInterceptTouchEvent(true);// 请求父控件不要对事件进行拦截return super.dispatchTouchEvent(ev);}可以自己在源码中添加布局选择器文件,进行字体颜色更改
在vpi_styles.xml中更改样式
<style name="Widget.TabPageIndicator" parent="Widget"> <item name="android:gravity">center</item> <item name="android:background">@drawable/vpi__tab_indicator</item> <item name="android:paddingLeft">22dip</item> <item name="android:paddingRight">22dip</item> <item name="android:paddingTop">12dp</item> <item name="android:paddingBottom">12dp</item> <item name="android:textAppearance">@style/TextAppearance.TabPageIndicator</item> <item name="android:textSize">16sp</item> <item name="android:textColor">@drawable/vpi__tab_text_color_indicator</item> <item name="android:maxLines">1</item> </style>6.当为viewpager设置setOnPageChangeListener时会不起作用,此时应该设置给对应的indicator
更多相关文章
- android的ImageSwitcher和TextSwitcher
- 分页控件1
- Android显示横幅样式通知
- Android自动补全(二)
- Android常用代码
- Android中自定义Dialog样式
- Android(安卓)深入研究LBS(基于位置的服务)
- Android:霓虹灯
- 修改进度条ProgressBar颜色