列表视图

ListView 是一个基本实现,提供了绘制项目列表的功能。ListView 继承自 BoxView.spring-doc.cadn.net.cn

ListView<T> 是泛型的,并且其 item 也是类型化的,可以接受任何对象。进一步的 item 处理发生在 CellFactory 中。为了方便起见,还支持显示选中状态(正常的选择框和单选按钮类型的)这种高级列表功能。本质上你可以拥有一系列的项目,这些项目可以原样显示,并且任何项目都可以有被选中的状态,或者只有一个项目可以被选中。spring-doc.cadn.net.cn

ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));

默认项样式为不检查状态,但可以更改。spring-doc.cadn.net.cn

支持 NOCHECK, `CHECK and `RADIO`spring-doc.cadn.net.cn

ListView<String> view = new ListView<>(ItemStyle.CHECKED);

自定义设置

个体单元格的显示取决于一个CellFactory。默认实现 简单地使用itemtoString()方法来显示。spring-doc.cadn.net.cn

可以通過修改使用的 CellFactory 进行自定义。spring-doc.cadn.net.cn

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());
	}

}

并将其设置为工厂:spring-doc.cadn.net.cn

ListView<ExampleData> view = new ListView<>();
view.setCellFactory((list, item) -> new ExampleListCell(item));

默认绑定

默认视图命令是:spring-doc.cadn.net.cn

表 1. 视图命令
命令 描述

LINE_UPspring-doc.cadn.net.cn

选中项向上移动。spring-doc.cadn.net.cn

LINE_DOWNspring-doc.cadn.net.cn

Selection moves down.spring-doc.cadn.net.cn

默认的快捷键是:spring-doc.cadn.net.cn

表2. 关键点
命令 描述

CursorUpspring-doc.cadn.net.cn

Bound ViewCommand LINE_UPspring-doc.cadn.net.cn

CursorDownspring-doc.cadn.net.cn

Bound ViewCommand LINE_DOWNspring-doc.cadn.net.cn

输入spring-doc.cadn.net.cn

选择当前项。spring-doc.cadn.net.cn

spring-doc.cadn.net.cn

更改激活项选择状态。spring-doc.cadn.net.cn

默认的 鼠标绑定 是:spring-doc.cadn.net.cn

表 3. 鼠标
命令 描述

轮子 | 轮子UPspring-doc.cadn.net.cn

Bound ViewCommand LINE_UPspring-doc.cadn.net.cn

轮子 | 轮子下移spring-doc.cadn.net.cn

Bound ViewCommand LINE_DOWNspring-doc.cadn.net.cn

发布的日期 | 按钮1spring-doc.cadn.net.cn

选择项spring-doc.cadn.net.cn

事件

事件根据使用的列表类型发送。spring-doc.cadn.net.cn

表格 4. List 视图事件
事件 描述

ListViewOpenSelectedItemEventspring-doc.cadn.net.cn

当前请求的项目需要打开。spring-doc.cadn.net.cn

ListViewSelectedItemChangedEventspring-doc.cadn.net.cn

Active item is changed.spring-doc.cadn.net.cn