2010-05-12 7 views
5

Me gustaría hacer un diseño absoluto utilizando dicho panel utilizando solo el archivo ui.xml, aunque no está claro si esto es posible ya que la documentación se concentra en el código e ignora el diseño idioma en total. Asumo que, dado que el tutorial no menciona esto, es imposible, pero me gustaría saberlo con certeza.Cómo utilizar AbsolutePanel en un archivo XML de UiBinder

Respuesta

9

Sé que esto es viejo, pero se ha actualizado la UiBinder para AbsolutePanel

uso de plantillas UiBinder

elementos AbsolutePanel en UiBinder plantillas trazan sus hijos con posición absoluta, utilizando elementos. Cada elemento debe tener atributos izquierdo y superior en píxeles. También pueden contener widget niños directamente, sin posición especificada.

Por ejemplo:

<g:AbsolutePanel> 
    <g:at left='10' top='20'> 
    <g:Label>Lorem ipsum...</g:Label> 
    </g:at> 
    <g:Label>...dolores est.</g:Label> 
</g:AbsolutePanel> 
+0

Esta es ahora la respuesta correcta. Tan actualizado – nick

2

Tienes razón, no hay forma de hacerlo en este momento. Este podría ser tratado en una futura versión de GWT introduciendo alguna sintaxis personalizada, como se hizo para DockLayoutPanel. Pero lo dudo - te gustaría escribir código como este:

<g:AbsolutePanel ui:field="absolutePanel"> 
    <g:Button x="50px" y="50px">Test</g:Button> 
</g:AbsolutePanel> 

Sin embargo, esto entra en conflicto con el "grano" (como en Java Beans, si usted tiene un método getSomethingCool, se puede escribir en el somethingCool="kewl" UiBinder código y llamará automáticamente al método get/set apropiado) porque Button no tiene un método setX/Y. Esto podría evitarse reemplazando las llamadas setX/Y con llamadas apropiadas a métodos existentes (posicionamiento CSS, etc.) en tiempo de compilación. Pero esto introduce otro comportamiento personalizado, que depende del Widget/Panel de envoltura: creo que a los desarrolladores de GWT les gustaría evitar eso.

+0

Gracias por la confirmación. Podría usar el evento con los colocadores, probablemente según lo que escribiste, pero eso es demasiado problema. – nick

+0

Esta solía ser la respuesta correcta, verifica la nueva información. – nick

Cuestiones relacionadas