2010-02-13 6 views
16

Estoy construyendo un widget con UiBinder, y necesito tenerlo encerrado en un <span /> pero UiBinder solo me da <div />. P.ej. <g:HTMLPanel /> =><div />. HorizonPanel, FlowPanel, VerticalPanel también dan solo <div />.Estoy tratando de obtener UIBinder para darme un lapso no un div

¿Alguien sabe una solución?

+4

Lees el razonamiento para el uso de divs más de otras etiquetas en javadocs de HTMLPanel para el 'HTMLPanel pública (tag de cadena, cadena HTML)' ctor: http://code.google.com /p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/client/ui/HTMLPanel.java#69. En resumen: es por favor IE:/ –

Respuesta

24

Prueba esto:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
     xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    <g:HTMLPanel tag="span"> 
     <!-- your stuff --> 
    </g:HTMLPanel> 
</ui:UiBinder> 
+0

Impresionante. Gracias Bob. – user198313

+1

El problema es que no puede cambiar el contenido a través de un campo ui: con esta técnica. – qwertzguy

0

Con respecto a la respuesta por encima de Robert (lo siento, no puedo encontrar la manera de comentar que directamente)

Esto no funcionará fuera de la caja, como widgets no se pueden colocar dentro de la versión HTML (el compilador le dará "error: widget encontrado en el contexto html"). Pero hay una solución simple:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
      xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    <g:HTMLPanel> 
    <span> 
     <!-- Your content with widgets goes here --> 
    </span> 
    </g:HTMLPanel> 
</ui:UiBinder> 

Otra cosa útil mencionar es InlineHTML y InlineLabel Widgets capaz de contener HTML arbitrario o texto plano, respectivamente, en un lapso < >

+0

Probé la solución de Bob y funcionó bien con los widgets en el Panel HTML. –

+0

mi comentario se aplica a una versión anterior de GWT, la que estaba disponible en '10 – atamur

5

Puede seguir usando un <div> pero sólo agregue display: inline a su CSS, que lo hará mostrar como si fuera <span>.

Editar: lugar fijo al final donde dije 'div' pero significaba 'span'.

+0

¡Solución brillante! – iTrout

Cuestiones relacionadas