我目前正在使用Android中的RecyclerView。每个RecyclerView项目都包含一个LinearLayout,其中包含一个我使用Canvas编写的条形图的自定义视图。我的RecyclerView中有7个项目,并且试图添加ItemDecoration以显示项目指示符,例如so。
绘制方法(drawLine,drawRect,drawCircle)似乎都不起作用。
画布drawRGB()
和drawARGB()
方法可以正常工作。
我尝试使用纯色drawRect(0, 0, viewWidth, viewHeight, mPaint);
,但效果也不佳。
我的装饰代码与上面的链接完全相同。这是我绘制标尺的函数-
public class CirclePagerIndicatorDecoration extends RecyclerView.ItemDecoration {
// Other code ...
/**
* Draws decoration indicators for inactive elements.
*/
private void drawInactiveIndicators(Canvas c, float startX, float posY, int count){
mPaint.setColor(colorInactive);
// width of indicator INCLUDING padding
final float itemWidth = mIndicatorItemLength + mIndicatorItemPadding;
float start = startX;
for(int i = 0; i < count; i++){
// draw indicator for every item
c.drawLine(start, posY, start + mIndicatorItemLength, posY, mPaint);
start += itemWidth;
}
}
我已经通过调试手动验证了所有值,它们似乎与预期的一样。我还尝试过绘制具有恒定值的任意圆形,矩形和文本,它们似乎也不起作用。
这是我的RecyclerView创建代码-
mAdapter = new liveLocationAdapter(returnedJSON, locationTimeTextView, locationStatusTextView, weekdaySpinner);
recyclerView.setAdapter(mAdapter);
recyclerView.addItemDecoration(new CirclePagerIndicatorDecoration());
SnapHelperSingle snapHelperSingle = new SnapHelperSingle();
snapHelperSingle.attachToRecyclerView(recyclerView);
任何帮助表示赞赏。谢谢。