Cercando di ottenere UIBinder per darmi un arco non un div
Domanda
Sto costruendo un widget con UiBinder, e ho bisogno di averlo chiuso in un <span />
ma UiBinder mi dà solo <div />
. Per esempio. <g:HTMLPanel />
=> <div />
. HorizonPanel, FlowPanel, VerticalPanel anche dare solo <div />
.
Se uno sa una soluzione?
Soluzione
Prova questo:
<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>
Altri suggerimenti
È possibile continuare a utilizzare un <div>
ma basta aggiungere display: inline
alla sua CSS, che lo renderà visualizzare come se si trattasse di un <span>
.
Modifica: posto fisso alla fine dove ho detto 'div' ma dire 'arco'
.Per quanto riguarda la risposta di cui sopra di Robert (scusate non riesco a capire come a commentare che direttamente)
Questo non funziona out of the box, come i widget non possono essere inseriti all'interno di semplice HTML (il compilatore vi darà "l'errore: trovato widget nel contesto html"). Ma c'è una soluzione semplice:
<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>
Un'altra cosa utile da ricordare è InlineHTML e InlineLabel widgets in grado di contenere HTML arbitrario o solo testo, rispettivamente, in un