java - Vaadin 14 - 无法让 Details/AccordionPanel 使用窗口宽度
问题描述
与许多其他 Vaadin“容器”组件不同,com.vaadin.flow.component.details.Details
andcom.vaadin.flow.component.accordion.AccordionPanel
类不允许setSizeFull()
(我都尝试过)。我试图弄清楚如何在表单上使用其中一个并让它在父视图中水平扩展。相反,它显示了一个不是很有用的狭窄视图。它有一些合理的垂直尺寸。我需要知道如何控制这个组件的大小。
这是表单类:
@CssImport("./styles/shared-styles.css")
public class EditTaskForm extends VerticalLayout {
...
private Grid<TaskNote> grid;
public EditTaskForm() {
this.addClassName("edit-task-form");
this.setSizeFull();
configureView();
...
}
private void configureView() {
Div title = new Div();
title.setText("Edit Task");
title.addClassName("page-title");
add(title, configDetails(), configNotes(), configDates(), configButtons());
setDefaultHorizontalComponentAlignment(Alignment.START);
}
...
private Component configNotes() {
grid = new Grid<>();
grid.addColumn(TaskNote::getNote).setHeader("Note");
grid.addColumn(new LocalDateTimeRenderer<>(TaskNote::getDateCreated, "MM/dd/yyyy HH:mm:ss"))
.setHeader("Created");
grid.addColumn(new LocalDateTimeRenderer<>(TaskNote::getDateModified, "MM/dd/yyyy HH:mm:ss"))
.setHeader("Last Modified");
grid.getColumns().forEach(col -> {
col.setAutoWidth(true);
col.setResizable(true);
});
grid.asSingleSelect().addValueChangeListener(event -> {
editNote(event.getValue());
});
Details details = new Details("Notes", grid);
details.setOpened(false);
return details;
}
...
}
我尝试了不同的变体,我在混合中插入了一个VerticalLayout
(that has setSizeFull()
),这样我返回了一个Details
-> VerticalLayout
-> Grid
,但这没有任何改变。
解决方案
显然,Details 和 Accordion 没有实现 HasSize,因此它们没有所需的方法。
您可以使用较低级别的元素 API 来设置宽度和高度作为解决方法:
details.getElement().getStyle().set("width", "100%");
另一种选择是使用Alignment.STRETCH
.
推荐阅读
- android - Android联系人合同:是否可以获得数据行的唯一ID?
- python - Python: Cosine similarity between two large numpy arrays
- amazon-web-services - 我在弹性 beanstalk 上部署了一个 API,并且可以在其 VPC 中访问它,我如何使其可以公开访问?
- uwp - 无法在 cppWinRT UWP 应用中激活 CoreWindow
- docker - Can nvidia-docker be run without a GPU?
- python - 如何在 PyCharm 中更改 Python 的版本
- php - 注意:试图获取非对象 CURL 结果的属性?
- python - How to hide google map api key in django before pushing it on github?
- javascript - 有没有办法用 JavaScript/CSS 制作 3D 文本效果
- php - Is it bad practice to set my own MongoDB _id from a unique ID of the document?