我有CustomView,它可以正常工作。 现在我需要通过代码更改一些项目颜色。 所以这是我的代码:
CustomView cv = new CustomView(mContext);
cv.setItemColor(Color.parseColor("#e77400"));
在我的customView i添加方法中:
public void setItemColor(int color){
mItemColorDefault = color;
invalidate();
requestLayout();
}
但在此之后没有任何事情发生且customView不刷新... 请帮助解决这个问题。 谢谢!
答案 0 :(得分:1)
requestLayout()
的大小未更改,否则无需致电CustomView
。此方法仅涉及定位更新的视图。onDraw()
方法,因为它是绘制视图时的位置。 invalidate()
方法会导致onDraw()
被调用。
使用mItemColorDefault
颜色在onDraw()
。以下是覆盖onDraw()
方法的自定义视图示例:
希望这会有所帮助。