サイズ設定を含む UI ツリーを次に示します。
HorizontalLayout (サイズ フル)
FormLayout(サイズ未定、拡大率:0)
- フィールド 1 (サイズ未定義)
- フィールド 2 (サイズ未定義)
- フィールド 3 (サイズ未定義)
パネル(フルサイズ、拡大率:1)
- ラベル (幅 100%、高さ未定義)
私が欲しいもの:
FormLayout に必要最小限のスペースを与え、残りのスペースは Panel で占有する必要があります。
どうしたの:
FormLayout の幅は 0 (実質的に非表示) で、Panel はスペース全体を占有します。
拡大率が両方とも 1 の場合、フォーム レイアウトとパネルはまったく同じ幅に見えます。
私がしたことは間違っていますか?FormLayout がそのサイズを維持し、Panel のみが水平方向に拡大するようにするにはどうすればよいですか?
編集:
メイン ビュー クラス:
private HorizontalLayout layout;
private FormLayout formLayout;
private TextField title;
private Upload upload;
private ComboBox<String> charset;
private Button btnSubmit;
private TextViewer textViewer;
public TextUploadView() {
createTitle();
createUpload();
createBtnSubmit();
createCharset();
formLayout = new FormLayout(title, upload, charset, btnSubmit);
textViewer = new TextViewer();
layout = new HorizontalLayout(formLayout, textViewer);
layout.setSizeFull();
layout.setExpandRatio(formLayout, 0);
layout.setExpandRatio(textViewer, 1);
}
TextViewer は、ラベルを含む Panel です。
public class TextViewer extends Panel {
private static final long serialVersionUID = 1L;
private Label labelText;
public TextViewer() {
super();
labelText = new Label();
labelText.setWidth("100%");
labelText.setStyleName("largeTextDisplay");
super.setContent(labelText);
super.setSizeFull();
}
public void setText(String text) {
labelText.setValue(text);
}
}
ラベルのcssが問題を引き起こしているとは思いませんが、これは次のとおりです。
.mytheme .largeTextDisplay {
white-space: pre-wrap;
word-wrap: normal;
}