为什么GWT以这样的方式设计的? 是什么大小调整和滚动事件之间的主要区别?
Answer 1:
因为没有事件在浏览器中调整(有调整的窗口级别,而不是元素级),相反滚动事件。
因此,调整“通知”是“模拟”在GWT:如果您使用RootLayoutPanel
或ResizeLayoutPanel
,它会侦听窗口的resize事件和向下传播他们的RequiresResize
孩子(这将向下传播过,如果他们是ProvidesResize
部件本身)。
显式设置的大小ProvidesResize
小部件也将通知其RequiresResize
儿童; 以及大小调整的布局面板的区域(编程为DockLayoutPanel
和LayoutPanel
-among其他- ,和/或由用户为完成SplitLayoutPanel
或StackLayoutPanel
)。
你会注意到, ScrollPanel
既是RequiresResize
(将其父通知ProvidesResize
小工具,它的大小可能会改变), ProvidesResize
(会通知其子小部件如果一个RequiresResize
)。
文章来源: Why is scroll processed via handler while resize is processed via overriden method in ScrollPanel?