Essayer d'obtenir UIBinder pour me donner une période pas un div
Question
Je construis un widget avec UiBinder, et je dois le faire enfermé dans un <span />
mais UiBinder me donne seulement <div />
. Par exemple. <g:HTMLPanel />
=> <div />
. HorizonPanel, FlowPanel, VerticalPanel donnent également uniquement <div />
.
Sait-on une solution?
La solution
Essayez ceci:
<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>
Autres conseils
Vous pouvez continuer à utiliser un <div>
mais il suffit d'ajouter à son display: inline
CSS, ce qui en fera afficher comme si elle était un <span>
.
Edit: lieu fixé à la fin où je dis « div » mais signifiait « durée »
.En ce qui concerne la réponse ci-dessus par Robert (désolé, je ne peux pas comprendre comment faire des commentaires que directement)
Cela ne fonctionnera pas hors de la boîte, que les widgets ne peuvent pas être placés à l'intérieur HTML brut (le compilateur vous donnera « erreur: trouvé widget dans le contexte html »). Mais il y a une solution 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>
Une autre chose est utile de mentionner InlineHTML et InlineLabel widgets capable de contenir html ou texte arbitraire plaine respectivement dans un