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));
默认绑定
默认视图命令为:
命令 | 描述 |
---|---|
LINE_UP |
选择向上移动。 |
LINE_DOWN |
选区向下移动。 |
默认键 bindig 为:
命令 | 描述 |
---|---|
光标向上 |
绑定 ViewCommand LINE_UP |
光标向下 |
绑定 ViewCommand LINE_DOWN |
进入 |
选择活动项目。 |
空间 |
更改活动项目选择状态。 |
默认鼠标 bindig 为:
命令 | 描述 |
---|---|
车轮 |车轮向上 |
绑定 ViewCommand LINE_UP |
车轮 |车轮向下 |
绑定 ViewCommand LINE_DOWN |
发布 |按钮1 |
选择项目 |
命令 | 描述 |
---|---|
LINE_UP |
选择向上移动。 |
LINE_DOWN |
选区向下移动。 |
命令 | 描述 |
---|---|
光标向上 |
绑定 ViewCommand LINE_UP |
光标向下 |
绑定 ViewCommand LINE_DOWN |
进入 |
选择活动项目。 |
空间 |
更改活动项目选择状态。 |
命令 | 描述 |
---|---|
车轮 |车轮向上 |
绑定 ViewCommand LINE_UP |
车轮 |车轮向下 |
绑定 ViewCommand LINE_DOWN |
发布 |按钮1 |
选择项目 |
事件
根据使用的列表类型发送事件。
事件 | 描述 |
---|---|
ListViewOpenSelectedItemEvent |
请求打开活动项目。 |
ListViewSelectedItemChangedEvent |
活动项目已更改。 |
事件 | 描述 |
---|---|
ListViewOpenSelectedItemEvent |
请求打开活动项目。 |
ListViewSelectedItemChangedEvent |
活动项目已更改。 |