ListView

ListView 是一個基本實現,提供了繪製專案列表的功能。ListView 繼承自 BoxView

ListView<T> 作為一個專案被型別化,可以接受任何物件。進一步的專案處理發生在 CellFactory 中。為方便起見,它支援通用的高階列表功能,顯示選中狀態,如普通複選框單選框型別。本質上,你可以有一個專案列表,這些專案可以原樣顯示,或者顯示為任何專案都可以具有選中狀態,或者只有一個專案可以具有選中狀態。

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

預設的專案樣式是 nocheck,但可以更改。

支援 NOCHECKCHECKRADIO

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. 檢視命令
命令 描述

LINE_UP

選擇向上移動。

LINE_DOWN

選擇向下移動。

預設的按鍵繫結

表 2. 鍵
命令 描述

游標上移

繫結檢視命令 LINE_UP

游標下移

繫結檢視命令 LINE_DOWN

Enter

選擇活動專案。

空格

更改活動專案的選擇狀態。

預設的滑鼠繫結

表 3. 滑鼠
命令 描述

滾輪 | 滾輪上移

繫結檢視命令 LINE_UP

滾輪 | 滾輪下移

繫結檢視命令 LINE_DOWN

釋放 | Button1

選擇項

事件

事件根據所使用的列表型別傳送。

表 4. ListView 事件
事件 描述

ListViewOpenSelectedItemEvent

請求開啟活動專案。

ListViewSelectedItemChangedEvent

活動專案已更改。

© . This site is unofficial and not affiliated with VMware.