事件

DslComponent由多个接口组成,其中事件相关的有DslComponentEventDslComponentGlobalEvent两个接口。大部分情况下你应该优先override DslComponentEvent中的函数来处理事件。

事件会从上到下依次传递。children中靠前的位于上层。

鼠标/键盘

KeyDownKeyUpMouseDownMouseUpcharTypeddropFiles的返回值是Boolean。如果你返回了true,事件将不会再继续传递下去。

MouseMove无返回值。他会始终传递下去。

mouseScrollVertical/mouseScrollHorizontal接收一个Double参数,返回一个Double。参数代表滚轮剩余的滚动量,返回值代表处理后剩余的滚动量。如果消耗了所有滚动量那么应该返回0.0,如果没有处理应该原样返回参数。如果已经返回了0,事件不会继续传递。

渲染

render中处理渲染事件。如果要调用childrenrender(),应该加上asReversed(),因为先绘制的内容会处于画面底层。如果要限制绘制的范围,可以使用backend.withScissor

全局事件

DslComponentGlobalEvent中的事件,它们不需要手动向下传递,而是统一从根节点向下调用。


This site uses Just the Docs, a documentation theme for Jekyll.