翻页容器怎么 用按钮翻页
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-15 13:13:25 |
👁️ 阅读: 13
在996引擎中,可以通过按钮控制翻页容器的翻页。核心方法是使用`GUI:PageView_scrollToItem()`或`GUI:PageView_setCurrentPageIndex()`函数。
以下是实现步骤和示例代码:
1. **创建翻页容器**
```lua
-- 先创建父窗口
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建翻页容器
local pageView = GUI:PageView_Create(parent, "MyPageView", 100, 100, 400, 300, 1)
-- 添加几个子页面(示例)
for i = 1, 3 do
local page = GUI:Widget_Create(pageView, "page_"..i, 0, 0, 400, 300)
GUI:Widget_setBackGroundColor(page, "#FF0000")
GUI:PageView_addPage(pageView, page)
end
```
2. **创建翻页按钮**
```lua
-- 上一页按钮
local btnPrev = GUI:Button_Create(parent, "btn_prev", 50, 50, "res/public/1900000612.png")
GUI:Button_setTitleText(btnPrev, "上一页")
-- 下一页按钮
local btnNext = GUI:Button_Create(parent, "btn_next", 350, 50, "res/public/1900000612.png")
GUI:Button_setTitleText(btnNext, "下一页")
```
3. **按钮翻页逻辑**
```lua
-- 获取当前页码
local currentPage = 0
-- 上一页按钮事件
GUI:addOnClickEvent(btnPrev, function()
local count = GUI:PageView_getItemCount(pageView)
if count > 0 then
currentPage = currentPage - 1
if currentPage < 0 then
currentPage = count - 1 -- 循环到最后一页
end
-- 方法1:滚动到指定页面
GUI:PageView_scrollToItem(pageView, currentPage)
-- 方法2:设置当前页面(效果相同)
-- GUI:PageView_setCurrentPageIndex(pageView, currentPage)
SL:Print("翻到第"..(currentPage+1).."页")
end
end)
-- 下一页按钮事件
GUI:addOnClickEvent(btnNext, function()
local count = GUI:PageView_getItemCount(pageView)
if count > 0 then
currentPage = currentPage + 1
if currentPage >= count then
currentPage = 0 -- 循环到第一页
end
GUI:PageView_scrollToItem(pageView, currentPage)
SL:Print("翻到第"..(currentPage+1).."页")
end
end)
```
**函数说明:**
- `GUI:PageView_scrollToItem(widget, index)`:滚动到指定序号的子页面
- `GUI:PageView_setCurrentPageIndex(widget, index)`:设置当前显示的子页面序号
- `GUI:PageView_getItemCount(widget)`:获取子页面总数
- `GUI:PageView_getCurrentPageIndex(widget)`:获取当前页面序号
**注意事项:**
1. 页面序号从0开始(0表示第一页)
2. 可以先获取当前页码:`local current = GUI:PageView_getCurrentPageIndex(pageView)`
3. 翻页容器默认有滑动效果,如果需要监听翻页完成,可以使用`GUI:PageView_addOnEvent()`添加事件
这样就能通过按钮控制翻页容器的翻页了,比手动滑动更精准!
← 返回问答库