列表视图
ListView 是一个基础实现,提供绘制项目列表的功能。ListView 继承自 BoxView。
ListView<T> 被类型化为其项目,可以接收任何对象。进一步的项目处理则在 CellFactory 中进行。为了方便,支持用于通用的高级列表功能,将检查状态显示为正常检查和无线电类型。本质上,你可以拥有一个列表显示为任何项目都可以有检查状态状态,或者只有一个项目可以有检查状态。
ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));
默认的物品样式是nocheck,但可以更改。
支持不检查, '检查以及“RADIO”
ListView<String> view = new ListView<>(ItemStyle.CHECKED);
定制化
单个单元格的显示方式取决于 CellFactory。默认实现仅仅用其toString()方法。
它可以通过修改二手CellFactory来定制。
record ExampleData(String name) {
};
static class ExampleListCell extends AbstractListCell<ExampleData> {
public ExampleListCell(ExampleData item) {
super(item);
}
@Override
public void draw(Screen screen) {
Rectangle rect = getRect();
Writer writer = screen.writerBuilder().style(getStyle()).build();
writer.text(getItem().name(), rect.x(), rect.y());
writer.background(rect, getBackgroundColor());
}
}
并设置成工厂:
ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));
默认绑定
默认视图命令有:
| 命令 | 描述 |
|---|---|
LINE_UP |
选拔会往上移动。 |
LINE_DOWN |
选择权向下移动。 |
默认按键绑定如下:
| 命令 | 描述 |
|---|---|
CursorUp(光标上游) |
绑定视图命令LINE_UP |
光标下 |
Bound ViewCommand LINE_DOWN |
进入 |
选择主动物品。 |
空间 |
更改当前的物品选择状态。 |
默认鼠标绑定有:
| 命令 | 描述 |
|---|---|
轮子 |轮子起 |
绑定视图命令LINE_UP |
轮子 |轮下 |
Bound ViewCommand LINE_DOWN |
已发布 |按钮1 |
选择物品 |
事件
事件的发送取决于使用的列表类型。
| 事件 | 描述 |
|---|---|
ListViewOpenSelectedItemEvent |
激活物品请求打开。 |
ListViewSelectedItemChangedEvent |
当前物品会被更改。 |