ListView
ListView 是一個基本實現,提供了繪製專案列表的功能。ListView 繼承自 BoxView。
ListView<T> 作為一個專案被型別化,可以接受任何物件。進一步的專案處理發生在 CellFactory 中。為方便起見,它支援通用的高階列表功能,顯示選中狀態,如普通複選框和單選框型別。本質上,你可以有一個專案列表,這些專案可以原樣顯示,或者顯示為任何專案都可以具有選中狀態,或者只有一個專案可以具有選中狀態。
ListView<String> view = new ListView<>();
view.setItems(List.of("item1", "item2"));
預設的專案樣式是 nocheck,但可以更改。
支援 NOCHECK、CHECK 和 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 |
選擇向下移動。 |
預設的按鍵繫結是
| 命令 | 描述 |
|---|---|
游標上移 |
繫結檢視命令 LINE_UP |
游標下移 |
繫結檢視命令 LINE_DOWN |
Enter |
選擇活動專案。 |
空格 |
更改活動專案的選擇狀態。 |
預設的滑鼠繫結是
| 命令 | 描述 |
|---|---|
滾輪 | 滾輪上移 |
繫結檢視命令 LINE_UP |
滾輪 | 滾輪下移 |
繫結檢視命令 LINE_DOWN |
釋放 | Button1 |
選擇項 |
事件
事件根據所使用的列表型別傳送。
| 事件 | 描述 |
|---|---|
ListViewOpenSelectedItemEvent |
請求開啟活動專案。 |
ListViewSelectedItemChangedEvent |
活動專案已更改。 |