gwt
  • uibinder
  • 2012-01-20 15 views 6 likes 
    6

    yılında HTMLPanel'dir vs?FlowPanel bu gibi basit bir düzen oluşturma tercih edilen yöntem nedir UiBinder kullanırken 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'dir:

    <!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> 
    

    Düzenleme: Bir stili kullanmak için herhangi bir gerekçe varsa onlar render aynı html üretmek biliyorum, merak ediyorum diğeri.

    Javadocs, FlowPanel'in en basit panel olduğunu, ancak hangi noktada HTMLPanel'in kullanıldığını tercih ettiğini söylüyor. Örneğin.

    <FlowPanel> 
        <FlowPanel> 
        <Widget> 
        </FlowPanel> 
        <FlowPanel> 
        <Widget> 
        </FlowPanel> 
    </FlowPanel> 
    

    vs

    <HTMLPanel> 
        <div> 
        <Widget> 
        </div> 
        <div> 
        <Widget> 
        </div> 
    </HTMLPanel> 
    

    teşekkürler.

    UiBinder - HTMLPanel vs. div oldukça benzer bir sorudur, ancak bir HTMLPanel ile bir div kullanmayı sormaktadır.

    cevap

    10

    Aslında onlar sizin durumunuzda aynı hale getirecek - div. FlowPanel'e daha fazla öğe eklemediğiniz sürece hiçbir fark yoktur.

    Burada FlowPanel davranışı deneyebilirsiniz: Sayfada kendi özel HTML kodu yazmak için gerektiğinde http://examples.roughian.com/index.htm#Panels~FlowPanel

    Sen durumlarda HTMLPanel'dir kullanmalıdır. HTMLPanel etiketinin içine HTML kodu yazmayı sağlar.

    Örneğin FlowPanel ile böyle hile yapamaz.

    +0

    Özellikle basit bir durumda, bunların nasıl oluşturulduğuna ek olarak, diğeri üzerinde seçim yapmak için avantajlar veya dezavantajlar var mı? – DTing

    +0

    Sadece kendiniz kontrol edebilirsiniz - bu elemanları incelemek için firefox veya chromeda geliştirici aracı üzerinde firebug başlatın. Bunu denedim ve hem div etiketini oluşturduklarını anladım. Bu yüzden yan etkiler konusunda endişelenmenize gerek olmadığını ve sadece kodunuzun okunabilirliğini ve idare edilebilirliğini yoğunlaştırabileceğinizi düşünüyorum. –

    4

    Son zamanlarda Tags First GWT Programming okudum. Bana öyle geliyor ki, tarif ettiği teknik, GWT'nin avantajlarını korurken, sayfanızın nihai görüntüsü üzerinde çok daha iyi bir kontrol sahibi olmanızı sağlayacaktır.

    Bence FlowPanel ve HTMLPanel arasında sorduğunuz iki nokta doğru soru değil. Bunun yerine, farklı şeyler için niyetlendiklerini tanımak en iyisidir.

    HTMLPanel'dir FlowPanel olduğunu çok daha fazlasını yapabilir. Bazı özel HTML'lerde gömülü olan widget'ları dinamik olarak eklemeniz ve kaldırmanız gerektiğinde, bir HTMLPanel kullanın. Bazı widget'ların normal html akışıyla birlikte sayfa üzerinde bir arada hizalanmasını isterseniz (bazı metinler ve resimler gibi) bir FlowPanel kullanın.

    Kişisel tavsiyem, ihtiyacınız olan şeyi yapabilecek en basit şeyi kullanmak olacaktır.

    0

    İkinci örneği öneririm. mümkün ise, kullanılmayan bir mantık widget'ına sahip olması nedeniyle "FlowPanel" gibi bir widget üzerinde "div" gibi düz bir HTML etiketini tercih etmelisiniz.

    Bu, ilk bakışta önemsiz gibi gözükebilir, ancak çok fazla şeyle uğraşmanız gerektiğinde sizi çok fazla baş ağrısından (bellek sızıntıları, klişe işlemleri ...) kurtarır.

    İlgili konular