帆布?或 View.onDraw() 方法中的 Canvas
Posted
技术标签:
【中文标题】帆布?或 View.onDraw() 方法中的 Canvas【英文标题】:Canvas? or Canvas in the View.onDraw() method 【发布时间】:2019-11-19 12:21:43 【问题描述】:android Studio 在 View 类中生成 onDraw() 方法,如下所示:
override fun onDraw(canvas: Canvas?)
super.onDraw(canvas)
但在 Google 的许多示例(代码实验室、课程等)中,我看到了另一个版本
override fun onDraw(canvas: Canvas)
super.onDraw(canvas)
哪个版本是正确的?为什么?
【问题讨论】:
【参考方案1】:fun onDraw(canvas: Canvas?)
此案例画布可能为空。它接受空值,因此应用程序可能是崩溃的空画布对象。所以我们必须在所有地方处理可空性。
onDraw(canvas: Canvas)
这个案例画布不能为空。所以我们不关心可空性。我们可以避免应用程序崩溃,所以这是最好的。
【讨论】:
这解释了什么是可选的,但没有解释为什么 onDraws 默认参数是可选的。以上是关于帆布?或 View.onDraw() 方法中的 Canvas的主要内容,如果未能解决你的问题,请参考以下文章