2009-06-25 19 views

Respuesta

6

que fue capaz de confirmar las siguientes obras en GWT 1.5, al menos:

final VerticalPanel vp = new VerticalPanel(); 
for (int i = 0; i < 40; i++) { 
    vp.add(new HTML("Oh oh")); 
} 
final HTML f = new HTML("END"); 
vp.add(f); 

final ScrollPanel panel = new ScrollPanel(vp); 
panel.setHeight("20em"); 
panel.addScrollListener(new ScrollListener() { 

    HTML end = f; 
    public void onScroll(Widget widget, int scrollLeft, int scrollTop) { 

     int finalPos = end.getAbsoluteTop() + end.getOffsetHeight(); 
     int panelPos = panel.getAbsoluteTop() + panel.getOffsetHeight(); 
     if (finalPos == panelPos) { 
      end = new HTML("MORE !!"); 
      vp.add(end); 
     } 

    } 
}); 

Nota los bits interesantes son los cálculos de las posiciones.

8

intentar algo como esto:

public static class InfiniteScrollPanel implements ScrollHandler { 
    String text = "Lorem ipsum dolor sit amet, consectetuer..."; 
    ScrollPanel panel = new ScrollPanel(new HTML(text)); 
    int height = 200; 
    int width = 200; 

    public InfiniteScrollPanel() { 
     panel.setHeight(height); 
     panel.setWidth(width); 
     panel.addScrollHandler(this); 
    } 
    public void onScroll(ScrollEvent event) { 
     if (panel.getScrollPosition == height) { 
      panel.add(new HTML(text)); 
     } 
    } 
} 

Lo que hace este código: se crea un ScrollPanel y añade un ScrollHandler a ella. En ScrollHandler, la altura de desplazamiento se compara con la altura del panel y luego agrega otro elemento secundario al panel.

No lo he probado porque estoy escribiendo esto en una netbook y no tengo un IDE en él.

+0

Gracias Chris - Supongo que el truco está en las alturas y cuándo activar las cosas para agregarlas al panel, etc. –

+0

Si no sabes la altura, puedes llamar a getOffsetHeight, pero luego debes saber las decoraciones (bordes, margen, relleno) –

Cuestiones relacionadas