要自定義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指示器的顏色和高度。您也可以根據需要進一步修改繪制方法,實現更多自定義效果。