我想在smartgwt窗口上发生滚动事件时做一些事情。我假设当至少发生以下一种情况时会触发事件:使用鼠标滚轮在窗口中滚动,通过拖动滚动条滚动或使用滚动箭头滚动。
我已经为smartgwt窗口添加了一个处理程序,并且还添加了一个smartgwt画布,这是该窗口的唯一子画面。两者都已设置为写入GWT.log。
但是,我似乎无法启动ScrollEvent。
有什么想法吗?
答案 0 :(得分:1)
不确定你做错了什么,但这是一个有效的样本:
Window window = new Window();
window.resizeTo(200,200);
VLayout layout = new VLayout();
layout.setOverflow(Overflow.AUTO);
// create something large enough to allow scrolling
Canvas canvas = new Canvas();
canvas.setHeight(500);
layout.addMember(canvas);
window.addItem(layout);
layout.addScrolledHandler(new ScrolledHandler() {
@Override
public void onScrolled(ScrolledEvent event) {
SC.logWarn("scrolled");
}
});
window.draw();
使用开发者控制台查看日志(有关如何访问日志,请参阅SmartGWT常见问题解答):
http://forums.smartclient.com/showthread.php?t=8159#aConsole
窗口有很多自动生成的子窗口(例如它的页眉和页脚),所以你可能试图在其中一个窗口中添加一个监听器,而且它不可滚动。