2010-01-27 58 views
1

我想在smartgwt窗口上发生滚动事件时做些事情。我假设至少发生下列事件之一时会触发事件:使用鼠标滚轮在窗口内滚动,通过拖动滚动条滚动,或使用滚动箭头滚动。Smart-Gwt ScrolledHandler用法

我已经为smartgwt窗口添加了一个处理程序,并且还添加了smartgwt画布,这是窗口的唯一子窗口。两者都已经被设置为写入GWT.log。

但是,我似乎无法得到一个ScrollEvent触发。

任何想法?

回答

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

窗口中有很多自动生成的子元素(例如其页眉和页脚),因此您可能试图向其中的一个添加侦听器,并且它不可滚动。