1

サイズ設定を含む UI ツリーを次に示します。

Horizo​​ntalLayout (サイズ フル)

  • 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;
}
4

0 に答える 0