滚动面板
查阅空格区域、colums 分组、方向、初始偏移与 tail。
滚动面板展示事先配置的一组组图标,一次移动一组,不按数据数量生成分页。下面的菜单固定显示两端箭头,中间七格水平滚动八种食物。
中间七格循环滚动,两端是固定方向按钮。
水平滚动示例
将文件放到 plugins/Invero/workspace/scroll-demo.yml,重载后用 /invero menu open scroll-demo 打开。
menu:
title: '&8滚动食物'
rows: 1
panels:
- layout:
- '< >'
icons:
'<':
material: ARROW
name: '&f向左'
action: 'scroll left'
'>':
material: ARROW
name: '&f向右'
action: 'scroll right'
scroll:
direction: horizontal
tail: -1
colums:
- material: APPLE
name: '&f苹果'
- material: CARROT
name: '&f胡萝卜'
- material: POTATO
name: '&f马铃薯'
- material: BREAD
name: '&f面包'
- material: MELON_SLICE
name: '&f西瓜'
- material: GOLDEN_CARROT
name: '&f金胡萝卜'
- material: BAKED_POTATO
name: '&f烤马铃薯'
- material: GOLDEN_APPLE
name: '&f金苹果'下载 scroll-demo.yml。图示为配置效果示意:初始中间依次显示苹果、胡萝卜、马铃薯、面包、西瓜、金胡萝卜、烤马铃薯。点击右箭头后先显示胡萝卜,金苹果进入最右侧;负 tail 让列表继续绕回开头。左箭头反向移动一组。
面板字段
字段写在 panels 中包含 scroll 的那一项。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
layout | 文字列表 | 是 | 没有可用滚动区域,不能加载 | 用空格留出一个矩形;所有空格的外接矩形就是滚动区域,不会自动拆成多个区域 |
scale | 两项整数列表 | 否 | 采用 layout 尺寸 | 整个面板的宽度、高度,包括固定箭头和背景 |
locate | 两项整数列表 | 否 | 在父容器中自动寻找未占用起点 | 整个区域的位置;需要偏移时明确填写 |
icons(icon、item、items) | 图标映射 | 是 | 缺少整个字段不能加载 | 固定背景和导航;放在滚动矩形以外 |
scroll | 滚动设置对象 | 是 | 不选择滚动面板 | 方向、分组和偏移见下表 |
空格必须组成你想要的单个完整矩形。把两个空格区域用装饰隔开,仍会把中间装饰一起包进同一个矩形;不要据此设计不规则或互不相连的滚动区。
滚动字段
字段位于 scroll 内。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
direction | 文字 | 否 | 水平滚动 | 只有 vertical(忽略大小写)选择纵向;horizontal 和其他文字均按水平处理 |
colums | 图标或图标列表组成的列表 | 是 | 无内容分组 | 保留 colums 这一拼写,columns 不是别名;每项是一列或一行 |
tail | 整数 | 否 | -1,循环滚动 | 负数循环;0 可滚至全空;正数决定末端保留的分组数量 |
default-index | 整数或表达式文字 | 否 | 从偏移 0 开始 | 正数经变量解析后作为初始偏移,并遵守尾部边界;0、负数或无法得到整数时仍从 0 开始 |
分组如何排布
| 方向 | colums 每一项 | 组内图标顺序 | 同时可见组数 |
|---|---|---|---|
| 水平 | 一列 | 从上到下 | 滚动矩形的宽度 |
| 纵向 | 一行 | 从左到右 | 滚动矩形的高度 |
单格组可直接写图标;多格组写成嵌套列表。下面是两列、每列两个图标的分组片段,需要放入有两行高滚动区域的面板:
scroll:
direction: horizontal
colums:
-
- material: APPLE
- material: CARROT
-
- material: BREAD
- material: POTATO第一列上方苹果、下方胡萝卜,第二列上方面包、下方马铃薯。改为 vertical 后,第一项变成苹果在左、胡萝卜在右的一行。每组超过区域容量的图标不显示,少于容量的格子留空。
每个图标仍支持外观、子状态与点击动作;位置由分组安排,不在分组图标上再写 slot。未指定 ID 的分组图标使用 colum_组索引_icon_组内索引,两种索引都从 0 开始,例如 colum_0_icon_0;要按名称操作它们也可显式设置 id。
滚动结束位置
tail | 实际结束位置 |
|---|---|
负数,例如 -1 | 在内容首尾之间循环;前进越过最后组回到开头,后退越过开头到最后组 |
0 | 最大偏移等于总分组数,允许整个区域为空 |
| 正数 | 末端保留 tail 与可见组数中的较小者;最大偏移是总分组数减去这个数量 |
本例八组、同时可见七组:tail: 7 的最大偏移是 1,最后显示第 2~8 项;tail: 1 的最大偏移是 7,最后只剩金苹果;tail: 99 与 tail: 7 相同,不会保留九十九组。
正 tail 的有效保留量不能超过总分组数,否则无法得到有效边界。循环时只在结尾补接一次开头的内容:分组过少、可见区域过大时仍可能出现空格,并非无限复制到铺满窗口。
控制语句
| 语句 | 作用 |
|---|---|
scroll right、scroll down、scroll next | 正向滚动一组;这三个名称等价,不会改换配置方向 |
scroll left、scroll up、scroll previous | 反向滚动一组 |
scroll reset | 回到偏移 0,不是重新应用 default-index |
scroll get、scroll index | 读取当前组偏移 |
shift by 2 0 | 水平相对移动两组;纵向用 shift by 0 2,by 可写 with |
大步幅 shift 按滚动边界处理,不是对总组数精确取余;一次跨过一整圈以上不会保证保留剩余步数。
选择滚动区域
顶层的一个滚动配置包含两个可选择区域:固定背景在前,滚动区在后。因此只有本例一个滚动配置时,panel at 0 select 是固定箭头背景,panel at 1 select 才是内容滚动区。
panel at 1 select
scroll reset多个滚动区域时,按它们各自的背景、滚动区顺序选择实际索引。单独一个区域的箭头可以像下载示例那样省略选择,由 scroll 查找对应滚动区。偏移滚动面板请明确写 locate,避免自动放置时背景与内容落在不同起点;不要将本例直接嵌入固定 pages 充当一个普通滚动页。
Last updated on