Pergunta

Eu gostaria de fazer algo quando um evento de rolagem ocorre em uma janela SmartGWT. Suponho que um evento seja disparado quando pelo menos um dos seguintes seguintes ocorreu: role dentro da janela com a roda de rolagem do mouse, role arrastando a barra de rolagem ou role usando setas de rolagem.

Adicionei um manipulador a uma janela SmartGWT e também à tela SmartGWT, que é o único filho da janela. Ambos foram configurados para escrever para Gwt.log.

No entanto, não consigo fazer um scrollevent para disparar.

Alguma ideia?

Foi útil?

Solução

Não tenho certeza do que você fez de errado, mas aqui está uma amostra de trabalho:

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();

Use o console do desenvolvedor para ver os logs (consulte as perguntas frequentes do SmartGWT para como acessá -lo):

http://forums.smartclient.com/showthread.php?t=8159#aconsole

A janela tem muitas crianças geradas automaticamente (por exemplo, seu cabeçalho e rodapé), então talvez você tenha tentado adicionar um ouvinte a um deles, e não foi rolável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top