ListView 是一个基本实现,提供绘制列表的功能。继承 BoxView

ListView<T> 被类型化为其,可以采用任何对象。进一步的项目处理发生在 CellFactory 中。为了方便起见,有一个支持 对于通用的高级列表功能,将检查状态显示为正常检查无线电类型。从本质上讲,您可以拥有的是一个列表 按原样显示的项目,显示任何项目都可以选中的位置 状态或只有一个项目可以具有已检查状态。

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

默认项目样式为 nocheck,但可以更改。

支持NOCHECK, `CHECK and `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));

默认绑定

默认视图命令为:

表 1.View命令
命令 描述

LINE_UP

选择向上移动。

LINE_DOWN

选区向下移动。

默认键 bindig 为:

表 2.钥匙
命令 描述

光标向上

绑定 ViewCommand LINE_UP

光标向下

绑定 ViewCommand LINE_DOWN

进入

选择活动项目。

空间

更改活动项目选择状态。

默认鼠标 bindig 为:

表 3.鼠
命令 描述

车轮 |车轮向上

绑定 ViewCommand LINE_UP

车轮 |车轮向下

绑定 ViewCommand LINE_DOWN

发布 |按钮1

选择项目

表 1.View命令
命令 描述

LINE_UP

选择向上移动。

LINE_DOWN

选区向下移动。

表 2.钥匙
命令 描述

光标向上

绑定 ViewCommand LINE_UP

光标向下

绑定 ViewCommand LINE_DOWN

进入

选择活动项目。

空间

更改活动项目选择状态。

表 3.鼠
命令 描述

车轮 |车轮向上

绑定 ViewCommand LINE_UP

车轮 |车轮向下

绑定 ViewCommand LINE_DOWN

发布 |按钮1

选择项目

事件

根据使用的列表类型发送事件。

表 4.ListView 事件
事件 描述

ListViewOpenSelectedItemEvent

请求打开活动项目。

ListViewSelectedItemChangedEvent

活动项目已更改。

表 4.ListView 事件
事件 描述

ListViewOpenSelectedItemEvent

请求打开活动项目。

ListViewSelectedItemChangedEvent

活动项目已更改。