2015-11-09 2 views
2

Как мне сделать заголовок texfield слева от текстового поля вместо того, чтобы по умолчанию его выполнять?Vaadin Текстовые поля с надписью слева от коробки вместо сверху?

HorizontalLayout hLayout = new HorizontalLayout(); 
setConent(hLayout); 

    TextField tf = new TextField(); 
    hLayout.addComponent(tf); 
+0

Вы можете использовать 'FormLayout'? – cfrick

+0

У меня есть список текстовых полей, которые мне нужно отображать по горизонтали, а не по вертикали. – Null

+0

затем FormLayouts в горизонтальных планах? Ярлык, TextField, ... в HorizontalLayout? CSS? – cfrick

ответ

2

В любом случае использование FormLayout, чтобы обернуть каждый TextBox как предложено в комментариях, или вы должны изменить CSS вашего TextBox. Установите стиль на TextBox, чтобы применить его только к тем, которые вы хотите.

TextBox yourTextBox = new TextBox(); 
yourTextBox.addStyleName("inline-label"); 

тогда CSS будет выглядеть следующим образом:

.v-caption-inline-label{ 
 
    display: inline-block; 
 
}

0

Почему бы не сделать это таким образом:

final FormLayout form = new FormLayout(); 

form.addComponent(new TextField("Caption line 1")); 

final HorizontalLayout formLine2 = new HorizontalLayout(); 
formLine2.addComponents(new TextField(), new Button(), new Button()); 
formLine2.setCaption("Caption line 2"); 

текстовое поле в строке 1 имеет подпись слева. Текстовое поле в строке 2 будет иметь заголовок сверху из-за контейнера горизонтальной компоновки. Перемещая подпись с текстового поля на горизонтальный макет, надпись снова будет на левой стороне.

Смежные вопросы