一个小的图形烦恼但我有一个ListView设置来显示设置高度超过默认值的自定义对象。我尝试使用setFixedCellSize()
,它在大多数用途中都能很好地工作,但在一种情况下,某些单元格的单元格高度可能会根据用户交互而增长和缩小。
class Example extends Label {
private boolean change = true;
public Example(String text) {
super(text);
setMinHeight(150);
setPrefHeight(150);
setMaxHeight(150);
Hyperlink link = new Hyperlink("Change");
setGraphic(link);
link.setOnAction(ae -> {
change = !change;
if(change) {
setMinHeight(80);
setPrefHeight(80);
setMaxHeight(80);
} else {
setMinHeight(180);
setPrefHeight(180);
setMaxHeight(180);
}
});
}
}
ListView<Node> list = new ListView<>();
list.setFixedCellSize(150);
list.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
list.getItems().addAll(new Example("Hello world"), new Example("12345"));
在上面的示例中,单击超链接时标签会更改高度。添加setFixedCellSize()
时不再执行此操作。是否有另一种方法可以实现更改虚拟行的相同效果,但允许自定义节点更改高度?
答案 0 :(得分:5)
您可以设置一个自定义单元格工厂,根据单元格的状态设置所需的高度(我假设“虚拟单元格”表示空单元格):
language: csharp
dist: trusty
sudo: required
mono: none
dotnet: 2.0.0
solution: OpenRMS.sln
branches:
only:
- master-net-core
before_script:
- chmod +x build.sh
- chmod +x test.sh
script:
- ./build.sh
这将导致非空单元格具有其首选大小(根据内容,在这种情况下,它只是字符串),而空单元格的首选大小为45。