yyd*_*ydl 17 android android-custom-view
我对此并不太清楚,也不是文档.
当我创建自定义视图时,我会这样重写:
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//more code here...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是是否有必要打电话super.onDraw(canvas);.如果没有它,代码似乎工作得很好,但我想确定它可以放弃它.
那有必要吗?
lrA*_*oid 16
如果你想让它调用超类onDraw方法(想想TextView或KeyboardView而不是一般的View),那么调用super.onDraw.如果你不想那样,即你打算自己绘制整个视图(你似乎是这样),就没有理由去调用它.
此外,如果您正在扩展View(而不是某些扩展视图的类),super.onDraw实际上并没有做任何事情.
对我来说,当我想在KeyboardView上绘制线条时,我会调用super.onDraw.因此,super.onDraw绘制键盘,我的自定义LatinKeyboardView(扩展KeyboardView)在键盘顶部绘制滑动路径.
查看源代码显示这View.onDraw()是一个空方法.因此,super.onDraw()如果父类View本身,则调用什么都不做.这是不必要的,但无害的.
无论你是否应该继续这样做,都是效率,安全和风格的独立问题.
| 归档时间: |
|
| 查看次数: |
6805 次 |
| 最近记录: |