List Box nodes

使用 List Box 节点在可滚动列表中排列项目。例如,使用 List Box 节点创建联系人列表、媒体播放器中的专辑列表或汽车设置列表。虽然布局控制节点将其项目排列在静态布局中,但 List Box 节点将其项目排列在一个列表中,用户一次只能看到一定数量的项目。要访问更多项目,用户需要滚动列表框。请参阅 布局控制节点。

使用 Grid List Box 节点可用于创建以网格形式排列的项的可滚动列表。

了解网格列表框节点 (Grid List Box nodes) >

../../_images/grid-list-box.gif

使用 Trajectory List Box 3D 节点可在 3D 空间中创建沿轨迹排列的项的可滚动列表。

了解 3D 轨迹列表框 (Trajectory List Box 3D) 节点 >

../../_images/trajectory-list-box-3d.gif

使用 List Box Item Container 预设更改列表框中当前选定项的外观。

了解列表框项容器 (List Box Item Container) 预设件 >

../../_images/list-box-item-container.gif

设置可见区域的大小

要设置 List Box 节点中项的可见区域的大小,使用以下属性:

  • Layout Height 用于设置 Grid List Box 或 Trajectory List Box 3D 节点的可见区域的高度。

  • Layout Width 用于设置 Grid List Box 或 Trajectory List Box 3D 节点可见区域的宽度。

  • Layout Depth 用于设置 Trajectory List Box 3D 节点可见区域的深度。

选择一个项并定义其选择行为

您可以设置选中 List Box 节点中的哪个项,以及用户选中项时项如何反应。例如,您可以将选中的项移到列表框可见区域的中心。

  • 要设置列表框中哪个项目被选中,使用 Selected Item Index 属性。索引从 0 开始。

    要使用绑定更新 Selected Item Index 属性的值,请使用到源或双向绑定。Kanzi 在内部会覆盖任何针对 Selected Item Index 属性的单向绑定。请参阅 绑定 (Bindings)。

    例如,您可以通过单击该项目或使用滑块来使用户能够在 List Box 节点中选择一个项目。请参阅 创建双向绑定。

  • 要设置列表框,使用户选择某个项目时将其移至列表框区域的中心,请使用 Selection Behavior 属性。请参阅 将选定的项放到 Grid List Box 中心 和 使用 Trajectory List Box 3D 节点。

访问项目的数量和位置

要获取 List Box 节点中项目的数量和位置,请使用这些只读属性:

  • List Box > Item Count 以获取列表框中的项目数量,包括虚拟项目。

    例如,使用 Item Count 属性设置用户可以使用的 Slider 的最大值,以:

  • List Box Item Container > Item Index 以获取列表框中项目的位置。索引从 0 开始。

    例如,使用 Item Index 属性在绑定中设置列表框项的外观,基于其与所选项的距离。使用 List Box > Selected Item Index 属性获取所选项的索引。您可以使用此方法来减小距离所选项较远的项的大小和不透明度。

为 List Box 节点定义项目

您可以定义列表框项的内容来源以及如何呈现这些内容。例如,您可以使用设置每个项目外观的项目模板,并从数据源获取项目的数据。请参阅 使用数据源。

  • 要设置为 List Box 节点中的项目提供数据的数据对象,请使用 Items Source 属性。请参阅 使用列表数据对象。

  • 要设置您希望 List Box 节点为其列表中的项目使用哪个预设模板,请使用 Item Template 属性。请参阅 使用列表数据对象。

  • 要在列表框中的项目之间共享功能,使用 Item Container Template 属性。当您设置 Item Container Template 属性时,列表框中的每个项目都会从 List Box Item Container 预设继承功能。例如,Item Container Template 可以包含一个状态管理器,该管理器会更改列表框中所选项目的缩放比例。这样,您无需为每个项目设置功能。请参阅 使用 List Box Item Container 预设。

  • 要设置您想要在可见项周围一次在工作内存中保持加载多少个项,使用 Keep Alive Item Count 属性。

    在 Keep Alive Item Count 属性中设置的值越小,释放用于其他任务的工作内存就越多。如果快速滚动列表框,这可能会导致项目在列表框中出现延迟。

控制 List Box 节点是否在使用中

要控制 List Box 节点是否在使用中,请使用 Input > Enabled 属性。禁用的 List Box 节点不会对用户输入做出反应。当您禁用 List Box 节点时,Kanzi 会停止正在进行的手势,并保留该 List Box 节点的选定项和滚动位置。

当您禁用节点的 Enabled 属性时,您实际上禁用了该节点及其在同一覆盖焦点范围内的子节点。

要观察节点是否有效启用,使用状态管理器或绑定中的 Input > Effectively Enabled 属性。例如,要向用户直观地指示节点是否正在使用,创建一个状态管理器并使用 Effectively Enabled 属性作为其控制器属性。

请参阅 控制节点对输入的反应方式。

在 List Box 节点中处理键焦点。

列表框项选择与键焦点的同步

Kanzi 会同步 List Box 节点中的项选择和键焦点,因此:

  • 当键焦点移动到列表项时,Kanzi 将该列表项设置为选中。

  • 如果应用程序的键焦点位于列表框节点中,且该列表框中的某个可聚焦项被选中,则该项会获得键焦点。

    请注意,虚拟化列表项无法获得焦点。

    小技巧

    要将键焦点从应用程序中的任何位置移动到用户按下的节点,可以使用 Focus > Focus On Press 属性。请参阅 将焦点设置到用户按下的节点上。。

列表框触发器

使用 List Box 触发器在用户与 List Box 节点交互时做出反应。例如,您可以在用户滚动该节点时设置 List Box 节点的外观。请参阅 当用户与 Grid List Box 节点交互时做出反应。 和 当用户与 Trajectory List Box 3D 节点交互时做出反应。。

另请参阅

使用 Grid List Box 节点

使用 Trajectory List Box 3D 节点

使用 List Box Item Container 预设

焦点

绑定 (Bindings)