1共50个物品,使用容器功能ListView,1排5个,未激活是灰色的,激活变亮,变量的在前面的容器,灰色在后面的容器
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-07-24 17:34:33 |
👁️ 阅读: 14
要实现50个物品的容器列表,每排5个,未激活灰色,激活变亮,可以通过创建两个容器列表来实现。激活状态的容器放在前面,灰色状态的容器放在后面。
根据课程日志,ListView可以创建自定义列表容器,支持竖向或横向排列。我们可以通过设置children参数来定义多个容器项。
示例脚本结构:
```txt
[@main]
#ACT
; 初始化变量
MOV N$总行数 10
MOV N$每排数量 5
MOV N$当前行 0
MOV S$激活容器 ""
MOV S$灰色容器 ""
; 创建ListView容器,children从0到9,共10个容器项
<Layout|x=545|y=0|width=80|height=80|link=@exit>
<Button|x=774.0|y=61.0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
<Img|x=136.0|y=56.0|loadDelay=1|bg=1|show=0|reset=1|esc=1|img=public_win32/1900000610.png|move=0>
; 创建ListView容器
<ListView|children={0,1,2,3,4,5,6,7,8,9}|x=29|y=44.5|width=170|height=284|direction=1|margin=0.2|reload=0|bounce=1>
WHILE N$当前行 < 10
; 计算容器ID
FORMULATION N$当前行*5 N$容器ID
; 判断激活状态(这里以变量示例)
MOV N$激活状态 0
; 根据你的业务逻辑设置激活状态
#IF
EQUAL N$激活状态 1
#ACT
; 生成激活状态的容器项
INC S$激活容器 <Button|id=<$STR(N$容器ID)>|children={1001,1002}|x=5|y=0|nimg=public/激活图片.jpg|pimg=public/激活图片.jpg|width=163|height=58|link=@选中物品_<$STR(N$当前行)>>
#ELSEACT
; 生成灰色状态的容器项
INC S$灰色容器 <Button|id=<$STR(N$容器ID)>|children={1001,1002}|x=5|y=0|nimg=public/灰色图片.jpg|pimg=public/灰色图片.jpg|width=163|height=58|link=@选中物品_<$STR(N$当前行)>>
; 为每个容器项添加子组件
INC S$激活容器 <Img|id=1001|bg=1|reset=1|x=5|y=5|img=物品图标/图标<$STR(N$当前行)>|width=48|height=48>
INC S$激活容器 <Text|id=1002|x=70|y=8|color=1021|size=18|text=物品<$STR(N$当前行)>>
INC N$当前行 1
ENDWHILE
#SAY
; 先显示灰色容器(在后面)
<$STR(S$灰色容器)>
; 再显示激活容器(在前面,覆盖灰色)
<$STR(S$激活容器)>
```
注意:
1. 需要根据实际界面调整x、y坐标和尺寸
2. 激活状态判断需要根据你的具体业务逻辑编写
3. 图片路径和颜色值需要替换为实际资源
4. 每个容器的link标签需要对应不同的处理函数
5. 可以通过设置default参数跳转到指定容器项
6. 如果界面卡顿,可以使用loadDelay、loadStep、loadCount参数优化加载性能
一个NPC可以支持多个容器列表,通过设置不同的children参数即可实现。
← 返回问答库