跳转至

SelectorWidget

SelectorWidget 是一个下拉式选择控件,允许用户从预定义的列表中选择选项。它支持动态更新选项列表、显示可配置的 UI,以及高效处理选择变化。


功能特性

  • 下拉选择 – 展开以显示可用选项。
  • 事件处理 – 当选择变化时触发回调。

属性

字段 类型 描述
currentValue String 当前选中的选项。

API

setCandidates

更新可选选项列表。

selectorWidget.setCandidates(List.of("OptionA", "OptionB", "OptionC"));
selectorWidget.setCandidates(["OptionA", "OptionB", "OptionC"]);
  • 触发 UI 更新以反映新选项。

setValue

设置当前选中的值。

selectorWidget.setValue("OptionA");
  • 如果该值在 candidates未找到,则保持不变。

setMaxCount

定义在滚动前可见的选项数量。

selectorWidget.setMaxCount(3);
  • 如果选项数量超过 maxCount,则会添加滚动条

setFontColor

更改选项文本的颜色。

selectorWidget.setFontColor(0xFFFFFF); // 白色文本

setButtonBackground

设置按钮区域的背景纹理。

selectorWidget.setButtonBackground(myCustomTexture);

setOnChanged

注册一个回调函数来处理选择变化。

selectorWidget.setOnChanged(selected -> {
    System.out.println("New selection: " + selected);
});
selectorWidget.setOnChanged(selected => {
    console.log("New selection: " + selected);
});
  • 这对于更新 UI 状态或触发游戏逻辑非常有用。

setCandidatesSupplier

从动态源自动更新选项列表。

selectorWidget.setCandidatesSupplier(() -> fetchDynamicOptions());
selectorWidget.setCandidatesSupplier(() => fetchDynamicOptions());
  • 控件会轮询此函数来刷新列表。
  • 适用于选项基于外部条件变化的情况。

setShow

手动切换下拉列表的可见性。

selectorWidget.setShow(true); // 打开下拉列表