2010-07-19 9 views
5

Necesito una altura de widget personalizada. He intentado utilizar estaGWT widgets personalizados altura

Integer.toString(yourWidget.getElement().getOffsetHeight()) 

pero,

  • Si lo uso cuando se crea o añadirlo al panel contenedor, devuelve 0
  • Si lo uso en el panel contrainer de onLoad método, devuelve la altura del widget antes de aplicar el estilo

Entonces, ¿cuándo debería usarlo para obtener la altura del widget después de aplicar el estilo?

¡Muchas gracias!

Respuesta

1

No sé si ya ha resuelto su problema, pero una opción para usar JSNI sería asegurarse de que la creación del widget haya finalizado.

Una forma de lograr esto es con el comando diferido:

DeferredCommand.addCommand(new Command() { 
     public void execute() { 
      // Ask here for the height 
     } 
    }); 
+0

¡Muchas gracias! ¡Ir funciona perfecto! Sin embargo, DeferredCommand ahora está en desuso, así que utilicé Scheduler.get(). scheduleDeferred (new ScheduledCommand() {... – david

0

creo onAttach o onLoad serían un buen partido ..

@Override 
protected void onLoad() { 
    super.onLoad(); 
    //do sth 
} 
+0

THX por su respuesta, pero tiene el mismo problema, cualquier otra idea ??? – david

+0

¿Qué hay de las herramientas como Firebug? ¿Muestran el valor esperado o la altura sigue siendo la misma? (Hay muchas formas en que el CSS puede afectar la altura de un elemento, no siempre de la forma esperable) –

+0

Recuerdo que tuve el mismo problema hace mucho tiempo ... Y no recuerdo cómo se resolvió. ... básicamente el problema era que estaba tratando de cambiar la altura mientras el widget aún no estaba completamente construido ... Intentaré encontrar el código ... – markovuksanovic

Cuestiones relacionadas