2016-03-30 10 views
0

Ich muss eine CssLayout Zeile auf 2 gleiche Fläche, die erste wird eine TextArea, die zweite eine Tabelle enthalten.Aufteilung eines Bereichs auf 2 gleiche Spalten in der Verwendung von CSS mit Vaadin CssLayout

So habe ich diesen Code:

@Override 
     protected String getCss(Component c) { 
      if (c instanceof TextArea) { 
       return "width: 50%; float:left"; 
      } 
      if (c instanceof Table) { 
       return "width: 50%; float:right"; 
      } 
      return null; 
     } 

Das Ergebnis ist nicht kompatibel mit dem, was ich bekommen will, siehe Bilder unten (Leider war ich verpflichtet, die angezeigten Texte zu löschen)

Current result

Gezielter Ergebnis:

the wanted result

So, wie es mit CSS zu tun ist.

Einstellung der Höhenwerte:

@Override 
     protected String getCss(Component c) { 
      if (c instanceof EsolifeTextAreaWordingLanguage) { 
       return "height: 213px"; 
      } 
      if (c instanceof Table) { 
       return "height: 219px;padding-left: 8px"; 
      } 
      return null; 
     } 
+1

Es ist ein typischer Anwendungsfall für das 'HorizontalLayout', warum nicht dieses verwenden? –

+1

Ja, Sie haben Recht, aber in meinem Fall muss ich verschachtelte (horizontale und vertikale Layouts) für Leistungszwecke entfernen. danke – AmiraGL

Antwort

2

Sie müssen, dass CSS-Layout hat 100% Breite zu gewährleisten.

Dann müssen Sie Textbereich und Tabellenbreite mit setWidth (50, Unit.PERCENTAGE) -Methode, aber nicht mit CSS-Code festlegen.

Aber wenn Sie Breite mit CSS setzen möchten dann auf Textbereich und Tabelle aufrufen setSizeUndefined() -Methode.

+0

Hi @Dragan also von dem, was ich verstanden habe, muss ich setSizeUndefined() -Methode aufrufen, wenn ich die getCss-Methode überschreiben will. Gibt es eine Möglichkeit, die Breite mit der Methode setWidth (50, Unit.PERCENTAGE) und der Höhe in der Methode getCss festzulegen, weil ich einen bestimmten Prozentwert für den Höhenwert habe? – AmiraGL

+1

Sie können mit setHeight nur die Höhe festlegen, die nicht definiert werden soll (Sizeable.SIZE_UNDEFINED, 0); –

+0

Und in der gleichen Zeit kann ich die Höhe Werte in der Methode getCss() können Sie den hinzugefügten Code über – AmiraGL

Verwandte Themen