赞
踩
自己定义一个View,重写onDraw方法(画一个红色的圆),然后add到某一个holder中,结果显示不出来。
显然是onDraw函数没有调用。
1. 手动触发
onDraw是一个触发事件产生的调用,一般只能通过特定的方法触发调用:invalidate和postInvalidate
2. 可以在构造函数里设置该view的backgroundcolor,即setBackgroundColor(Color.rgb(0, 255, 0)); 会自动触发onDraw函数
3. 使用setWillNotDraw(false),即不拦截onDraw函数的调用
public void setWillNotDraw (boolean willNotDraw)
Since: API Level 1
If this view doesn't do any drawing on its own, set this flag to allow further optimizations. By default, this flag is not set on View, but could be set on some View subclasses such as ViewGroup. Typically, if you overrideonDraw(Canvas)
you should clear this flag.
willNotDraw whether or not this View draw on its own
参考
http://blog.sina.com.cn/s/blog_4b50130d0100u0uk.html
http://blog.csdn.net/hearrt/article/details/7001358
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。