最近碰到一個需求,因為是我比較感興趣的TabLayout的,所以記錄一下吧。
原因分析:
TabLayout(TL)繼承自HorizontalScrollView,其只能添加一個子控件,這個子控件便是TL內(nèi)部私有類–SlidingTabStrip,其繼承自LinearLayout。指示器怎么加上的呢?便是在該類的onDraw方法中:
@Override public void draw(Canvas canvas) { super.draw(canvas); // Thick colored underline below the current selection if (mIndicatorLeft >= 0 && mIndicatorRight > mIndicatorLeft) { canvas.drawRect(mIndicatorLeft, mIndicatorRight, getHeight(), mSelectedIndicatorPaint); } }