local ui = self.ui
for i=1,3 do
-- Create Button_1
local Button_1 = GUI:Button_Create(ui.ListView_1, "Button_"..i, 0, 0, "res/custom/ZhongJiTuJian/99.png")
GUI:Button_setTitleText(Button_1, [[]])
GUI:Button_se
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-16 01:50:06 |
👁️ 阅读: 4
你的代码有几个问题需要修正:
1. **父节点问题**:`Button_1` 的父节点是 `ui.ListView_1`,但 `ListView` 需要正确添加子项
2. **添加子项方式**:应该使用 `GUI:ListView_pushBackCustomItem()` 或 `GUI:ListView_insertCustomItem()`
3. **事件函数**:应该使用 `GUI:addOnClickEvent()` 而不是 `UILib:addOnClickEvent()`
4. **移除子节点**:应该使用 `GUI:removeAllChildren()` 而不是 `UILib:removeAllChildren()`
下面是修正后的代码:
```lua
local ui = self.ui
-- 确保ListView已创建并设置好模板
-- 先创建模板(如果还没有)
local template = GUI:Layout_Create(ui.ListView_1, "template", 0, 0, 100, 50, false)
for i = 1, 3 do
-- 创建Button作为列表项
local Button_1 = GUI:Button_Create(template, "Button_"..i, 0, 0, "res/custom/ZhongJiTuJian/99.png")
GUI:Button_setTitleText(Button_1, "按钮"..i)
GUI:Button_setTitleColor(Button_1, "#ffffff")
GUI:Button_setTitleFontSize(Button_1, 16)
GUI:Button_titleEnableOutline(Button_1, "#000000", 1)
GUI:setAnchorPoint(Button_1, 0.00, 0.00)
GUI:setTouchEnabled(Button_1, true)
GUI:setTag(Button_1, i) -- 设置tag为i,方便识别
-- 创建图片
local Image_6 = GUI:Image_Create(Button_1, "Image_"..i, 38, 8, string.format("res/custom/ZhongJiTuJian/%d.png", i))
GUI:setAnchorPoint(Image_6, 0.00, 0.00)
GUI:setTouchEnabled(Image_6, false)
GUI:setTag(Image_6, 0)
-- 添加到ListView
GUI:ListView_pushBackCustomItem(ui.ListView_1, Button_1)
-- 添加点击事件
GUI:addOnClickEvent(Button_1, function()
self.select = i
-- 先移除所有子节点
GUI:removeAllChildren(Image_6)
-- 创建选中效果图片
local Image_1 = GUI:Image_Create(Image_6, "Im_"..self.select, 0, 0, "res/public/1900000678_1.png")
GUI:setContentSize(Image_1, 189, 48)
GUI:setIgnoreContentAdaptWithSize(Image_1, false)
GUI:setAnchorPoint(Image_1, 0.00, 0.00)
GUI:setTouchEnabled(Image_1, false)
GUI:setTag(Image_1, 0)
self:updateUI()
end)
end
```
**主要修改点:**
1. 使用 `template` 作为按钮的父节点
2. 使用 `GUI:ListView_pushBackCustomItem()` 添加按钮到ListView
3. 使用 `GUI:addOnClickEvent()` 添加点击事件
4. 使用 `GUI:removeAllChildren()` 移除子节点
如果还有问题,可以检查 `ui.ListView_1` 是否正确创建,或者告诉我更多上下文信息。
← 返回问答库