Quando si utilizza UiBinder qual è il metodo preferito per creare un layout semplice come questo?FlowPanel vs. HTMLPanel in GWT UiBinder
FlowPanel:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outer {
display: table;
height: 100%;
width: 100%;
}
.inner {
background: #DDD;
display: table-cell;
vertical-align: middle;
}
</ui:style>
<g:FlowPanel styleName="{style.outer}">
<g:FlowPanel styleName="{style.inner}">
<g:Label ui:field="someLabel"/>
</g:FlowPanel>
</g:FlowPanel>
</ui:UiBinder>
HTMLPanel:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.outer {
display: table;
height: 100%;
width: 100%;
}
.inner {
background: #DDD;
display: table-cell;
vertical-align: middle;
}
</ui:style>
<g:HTMLPanel styleName="{style.outer}">
<div class="{style.inner}">
<g:Label ui:field="someLabel"/>
</div>
</g:HTMLPanel>
</ui:UiBinder>
Edit: So che producono lo stesso HTML durante il rendering, mi chiedo se non v'è alcuna giustificazione per l'utilizzo di uno stile su l'altro.
I javadocs dicono che il FlowPanel è il pannello più semplice, ma a che punto è preferibile utilizzare un HTMLPanel. per esempio.
<FlowPanel>
<FlowPanel>
<Widget>
</FlowPanel>
<FlowPanel>
<Widget>
</FlowPanel>
</FlowPanel>
vs.
<HTMLPanel>
<div>
<Widget>
</div>
<div>
<Widget>
</div>
</HTMLPanel>
Grazie.
UiBinder - HTMLPanel vs. div è una domanda abbastanza simile ma chiede di utilizzare un div vs. un HTMLPanel.
In aggiunta a come vengono visualizzati, specialmente in un caso semplice come questo, ci sono vantaggi o svantaggi nella scelta dell'uno rispetto all'altro? – DTing
Puoi semplicemente controllarlo da solo - lancia firebug su firefox o lo strumento di sviluppo in chrome per ispezionare questi elementi. L'ho provato e ho capito che rendono entrambi come tag div. Quindi presumo che non devi preoccuparti degli effetti collaterali e puoi concentrarti solo sulla leggibilità e sulla maneggevolezza del tuo codice. –