个人感觉Tablayout里的indicator左右滑动和摩拜单车里按钮背景左右滑动很像,所以我的思路是修改Tablayout里indicator的位置和形状,把indicator的位置放在tab下面,并且修改indicator的形状为圆角矩形,那接下来就是具体实现啦
我采用的方法是改写material design下TabLayout的源码,修改的地方只有两处,都位于TabLayout内部类
SlidingTabStrip 中
1、修改animateIndicatorToPosition()里的代码,这里主要处理按钮的背景左右移动的动画,
if (Math.abs(position - mSelectedPosition) <= 1) { // If the views are adjacent, we'll animate from edge-to-edge startLeft = mIndicatorLeft; startRight = mIndicatorRight; } else { // Else, we'll just grow from the nearest edge