ViewPager Indicator实现方式解析
ViewPager 的页面指示器真的是安卓开发里绕不开的小东西,尤其在做相册、引导页、甚至是多 Tab 页面时,少了它还真不行。比较常见的实现方式有三个:一个是用官方的TabLayout,简单可靠;一个是老牌第三方库ViewPagerIndicator,样式多;再一个就是自己写,想怎么玩都行。
官方的TabLayout和ViewPager2现在配合得顺,用TabLayoutMediator
一绑,标题栏和页面就能联动,响应也快,代码也简单。比如:
new TabLayoutMediator(tabLayout, viewPager2, (tab, position) -> {
tab.setText(titles[position]);
}).attach();
如果你追求页面指示的小圆点或者花里胡哨的效果,ViewPagerIndicator库就比较合适了。下划线、圆点、滑块、文字样式,通通都有,还能通过 XML 快速配置。就是要注意兼容性,尤其是和新版 ViewPager2 搭配时,得稍微适配下。
想要完全自由?那就自定义 View。监听ViewPager.OnPageChangeListener
,在自己的 View 里重绘指示器状态。虽然写起来稍微复杂点,但你能做出有个性的交互效果,比如带缩放、带颜色渐变的动画。
另外,如果你用的是 MVVM 架构,数据绑定也是个不错的选择。ViewModel 负责状态,UI 那边直接绑定currentItem
,这样指示器跟页面同步起来就更优雅。
小提示:页面多的时候别忘了优化性能,offscreenPageLimit
、懒加载这些都要用上,不然卡顿可就出来了。
如果你想试试第三方实现,可以看看这个页面 android 第三方库调用,里面有不少老牌库的使用方式。
18.6MB
文件大小:
评论区