ViewPagerIndicator
FragmentPagerAdapter,见名知意,这个适配器就是用来实现Fragment在ViewPager里面进行滑动切换的,因此, 如果我们想实现Fragment的左右滑动,可以选择ViewPager和FragmentPagerAdapter实现。 FragmentPagerAdapter拥有自己的缓存策略 ,当和ViewPager配合使用的时候,会缓存当前Fragment以及左边一个、右边一个,一共三个Fragment对象。假如有三个Fragment ,那么在ViewPager初始化之后,3个fragment都会加载完成,中间的Fragment在整个生命周期里面只会加载一次,当最左边的Fragment处于显示状态,最右边的Fragment由于超出缓存范围,会被销毁,当再次滑到中间的Fragment的时候,最右边的Fragment会被再次初始化。
//动态设置tab
mViewPagerIndicator.setVisibleTabCount(4);
mViewPagerIndicator.setTabItemTitles(mTitles);
mViewpager.setAdapter(mAdapter);
mViewPagerIndicator.setViewPager(mViewpager,0);
// w/3为每个tab的宽度,目前可见为3个
mTriangleWidth= (int) (w /mTabVisibleCount*RADIO_TRIANGLE_WIDTH);
//选取最小的那一个作为宽
mTriangleWidth= Math.min(mTriangleWidth,DIMENSION_TRIANGLE_WIDTH_MAX);
// 第一个三角形的偏移位置
mInitTranslationX= w /mTabVisibleCount/2-mTriangleWidth/2;
initTriangle();
源码地址https://github.com/FoxconnPeter/ViewPagerIndicator
网友评论