要自定义Android SlidingTabLayout指示器,可以通过修改SlidingTabStrip类中的绘制代码来实现。
首先,在SlidingTabLayout类中找到SlidingTabStrip类的引用,并且修改其绘制方法。在SlidingTabStrip类中,可以找到onDraw方法,该方法用于绘制指示器。
以下是一个简单的示例代码,演示如何自定义SlidingTabLayout指示器的颜色和高度:
public class SlidingTabStrip extends LinearLayout { private int indicatorColor = Color.RED; private int indicatorHeight = 8; // Constructor public SlidingTabStrip(Context context) { this(context, null); } public SlidingTabStrip(Context context, AttributeSet attrs) { super(context, attrs); setWillNotDraw(false); // Make sure onDraw is called setOrientation(LinearLayout.HORIZONTAL); setGravity(Gravity.CENTER_HORIZONTAL); } // Set indicator color public void setIndicatorColor(int color) { indicatorColor = color; invalidate(); } // Set indicator height public void setIndicatorHeight(int height) { indicatorHeight = height; invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); View selectedTab = getChildAt(selectedPosition); if (selectedTab != null) { int indicatorLeft = selectedTab.getLeft(); int indicatorRight = selectedTab.getRight(); int indicatorTop = getHeight() - indicatorHeight; int indicatorBottom = getHeight(); canvas.drawRect(indicatorLeft, indicatorTop, indicatorRight, indicatorBottom, paint); } } }
在上面的示例代码中,我们添加了setIndicatorColor和setIndicatorHeight方法,用于设置指示器的颜色和高度。在onDraw方法中,我们使用canvas.drawRect方法绘制矩形指示器,并通过indicatorColor和indicatorHeight属性配置指示器的颜色和高度。
最后,调用setIndicatorColor和setIndicatorHeight方法来设置指示器的颜色和高度:
SlidingTabLayout slidingTabLayout = findViewById(R.id.sliding_tabs); SlidingTabStrip slidingTabStrip = slidingTabLayout.getSlidingTabStrip(); slidingTabStrip.setIndicatorColor(Color.BLUE); slidingTabStrip.setIndicatorHeight(10);
通过以上步骤,您可以自定义Android SlidingTabLayout指示器的颜色和高度。您也可以根据需要进一步修改绘制方法,实现更多自定义效果。