【发布时间】:2018-11-03 09:54:43
【问题描述】:
我正在使用自定义视图来绘制滑块(带有两个手柄)。
自定义视图正在扩展 ConstraintLayout,我在构造函数中设置 setWillNotDraw() 并且一切正常 - 直到包含自定义视图的片段停止并重新启动。从此时开始,onDraw 方法在调用 invalidate() 后不再执行。在调试期间,我检查了 willNotDraw-Flag,它仍然设置为 false。
- 我正在使用 kotlinx
- 我在初始化块中调用 setWillNotDraw(false)
- 我测试过,如果包含的片段被创建了两次,但那里的一切看起来都很正常。
- 我保证,调用了 invalidate()。
- 我保证,willNotDraw() 设置为 false。
- 自定义视图添加到 layout.xml 中的片段
-
片段的
onCreate、onCreateView、onViewCreated只调用一次
初始化块在自定义视图中:
init {
View.inflate(context, R.layout.layout_slider, this)
setWillNotDraw(false)
}
onDraw 函数在自定义视图中:
override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
Timber.d("onDraw")
}
停止并启动包含片段后,onDraw 不再输出,而其他一切正常。
【问题讨论】:
标签: android kotlin android-custom-view ondraw