用按钮控制列表容器翻动
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-26 21:47:13 |
👁️ 阅读: 20
要用按钮控制列表容器翻动,你需要使用`GUI:ListView_scrollToPercentVertical()`或`GUI:ListView_scrollToPercentHorizontal()`函数,具体取决于列表的滚动方向。
以下是实现步骤:
1. **创建列表容器**:使用`GUI:ListView_Create()`创建一个列表容器。
2. **创建控制按钮**:创建两个按钮,一个用于向上/向左翻动,一个用于向下/向右翻动。
3. **为按钮添加点击事件**:在按钮的点击事件中,调用`GUI:ListView_scrollToPercentVertical()`或`GUI:ListView_scrollToPercentHorizontal()`来滚动列表到特定百分比位置。
**示例代码 (垂直滚动列表):**
```lua
-- 1. 创建父节点
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 2. 创建一个垂直滚动的列表容器
local listView = GUI:ListView_Create(parent, "myListView", 100, 150, 200, 300, 1)
-- 为列表添加一些测试项以便观察滚动效果
for i = 1, 10 do
local item = GUI:Widget_Create(parent, "item_" .. i, 0, 0, 180, 50)
local text = GUI:Text_Create(item, "text_" .. i, 10, 10, 20, "#ffffff", "列表项 " .. i)
GUI:ListView_pushBackCustomItem(listView, item)
end
-- 3. 创建“向上翻动”按钮
local btnUp = GUI:Button_Create(parent, "btn_up", 100, 100, "res/public/1900000612.png")
GUI:Button_setTitleText(btnUp, "向上翻动")
GUI:addOnClickEvent(btnUp, function()
-- 滚动到顶部 (0%)
GUI:ListView_scrollToPercentVertical(listView, 0, 0.5, true)
end)
-- 4. 创建“向下翻动”按钮
local btnDown = GUI:Button_Create(parent, "btn_down", 250, 100, "res/public/1900000612.png")
GUI:Button_setTitleText(btnDown, "向下翻动")
GUI:addOnClickEvent(btnDown, function()
-- 滚动到底部 (100%)
GUI:ListView_scrollToPercentVertical(listView, 100, 0.5, true)
end)
```
**关键函数说明:**
* `GUI:ListView_scrollToPercentVertical(widget, percent, time, bool)`
* `widget`: 列表容器对象。
* `percent`: 目标百分比位置 (0 到 100)。0代表顶部,100代表底部。
* `time`: 滚动动画的持续时间(秒)。
* `bool`: 是否启用滚动速度衰减效果(`true`为启用,滚动更平滑)。
**对于水平滚动列表:**
如果你的列表是水平滚动的(创建时`direction`参数为`2`),则将上述代码中的`GUI:ListView_scrollToPercentVertical`替换为`GUI:ListView_scrollToPercentHorizontal`即可。参数含义相同,`percent`为0时代表最左侧,100时代表最右侧。
这样,点击按钮就能平滑地控制列表翻动了。
← 返回问答库