数第二个到最后一个,
那么position - (mTabVisibleCount - 2)为0,偏移量也就是(tabWidth * offset)~~
当可见为0的时候,我们需要特殊处理下,也就是我们的else~
最后记得invalidate~~
好了,到此核心的方法介绍完了~~剩下些杂七杂八的~~
/**
? * 设置可见的tab的数量
? *
? * @param count
? */
?public void setVisibleTabCount(int count)
?{
? this.mTabVisibleCount = count;
?}
?/**
? * 设置tab的标题内容 可选,可以自己在布局文件中写死
? *
? * @param datas
? */
?public void setTabItemTitles(List datas)
?{
? // 如果传入的list有值,则移除布局文件中设置的view
? if (datas != null && datas.size() > 0)
? {
? ?this.removeAllViews();
? ?this.mTabTitles = datas;
? ?for (String title : mTabTitles)
? ?{
? ? // 添加view
? ? addView(generateTextView(title));
? ?}
? ?// 设置item的click事件
? ?setItemClickEvent();
? }
?}
其实就是你可以在onCreate里面???设置tab显示的内容,以及可见的Tab数量,大家猜一猜,如果在布局和onCreate里面都写了数量,哪个有效呢(自己去实验)~~
记得如果是代码控制,setVisibleTabCount在setTabItemTitles之前调用。
ok,基本完工了~~~
有兴趣的,把三角形改成我们的下划线指示器玩一玩~~估计改几行代码即可~~
如有bug,欢迎提出。本文源码下载在下:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2015年资料/2月/16日/Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI/
------------------------------------------分割线------------------------------------------