local benyuanzhili = {}
function benyuanzhili.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
benyuanzhili.parent = lib:openwin(param1, nil, true, param4)
根据你的代码结构,我来帮你实现将子按钮挂接到每个ListView上。你需要为每个技能按钮(1-6)的ListView创建对应的子按钮。
```lua
function benyuanzhili.upmain()
if not benyuanzhili.parent or not benyuanzhili.parent._ui then
return
end
local magnification = lib:get_cur_att_val(226)
local knifeCutting = lib:get_cur_att_val(224)
local sourcePower = lib:get_cur_att_val(228)
local sourceFixedValue = lib:get_cur_att_val(247)
local ui = benyuanzhili.parent._ui
local cfg = benyuanzhili.parent.cfg
local var = tonumber(lib:getstr("U63") or 0) or 0
local expVal = tonumber(SL:GetMetaValue("SERVER_VALUE", "U64")) or 0
SL:Print("expValexpValexpValexpValexpValexpValexpVal====", expVal)
local level = var
local next_level = var + 1
-- 0级:强制0倍率
local beilv = 0
if level > 0 then
local cur_data = cfg[level] or {}
beilv = cur_data.cur_attr_1 or 0
end
-- 显示等级
if GUI:Win_IsNotNull(ui.Text_1) then
GUI:Text_setString(ui.Text_1, "Lv" .. level)
end
-- 显示倍率(0级=0倍率)
if GUI:Win_IsNotNull(ui.Text_2) then
GUI:Text_setString(ui.Text_2, "Lv" .. level .. " 倍率:" .. beilv .. "倍")
end
if GUI:Win_IsNotNull(ui.Text_4) then
GUI:Text_setString(ui.Text_4, magnification)
end
if GUI:Win_IsNotNull(ui.Text_5) then
GUI:Text_setString(ui.Text_5, sourceFixedValue)
end
if GUI:Win_IsNotNull(ui.Text_6) then
GUI:Text_setString(ui.Text_6, knifeCutting)
end
if GUI:Win_IsNotNull(ui.Text_7) then
GUI:Text_setString(ui.Text_7, sourcePower)
end
if GUI:Win_IsNotNull(ui.LoadingBar_2) then
local maxExp = 0
if level <= 5 then
maxExp = 100000
elseif level <= 10 then
maxExp = 150000
elseif level <= 15 then
maxExp = 180000
elseif level <= 20 then
maxExp = 200000
elseif level <= 25 then
maxExp = 230000
else
maxExp = 260000
end
if GUI:Win_IsNotNull(ui.Text_3) then
if level <= 0 then
GUI:Text_setString(ui.Text_3, expVal .. " / 100000")
else
GUI:Text_setString(ui.Text_3, expVal .. " / " .. maxExp)
end
end
local percent = 0
if maxExp > 0 then
percent = expVal / maxExp * 100
end
percent = math.max(0, math.min(100, percent))
GUI:LoadingBar_setPercent(ui.LoadingBar_2, percent)
end
if not benyuanzhili._inited then
GUI:removeAllChildren(ui.magic_list_view)
benyuanzhili._inited = true
end
-- 创建6个技能按钮
benyuanzhili.magic_btns = benyuanzhili.magic_btns or {}
for nameid = 1, 6 do
local magic_id = nameid
local btn = benyuanzhili.magic_btns[magic_id]
local name = "magic_btn_" .. magic_id
if GUI:Win_IsNull(btn) then
btn = GUI:Button_Create(ui.magic_list_view, name, 0, 145,
"res/yidalu/benyuanzhili/" .. magic_id .. "_1.png")
benyuanzhili.magic_btns[magic_id] = btn
GUI:addOnClickEvent(btn, function()
benyuanzhili.click_magic_btn(magic_id)
end)
-- 创建对应的ListView
local listViewName = "ListView_" .. magic_id
local listView = GUI:ListView_Create(btn, listViewName, 0, 0, 100, 100, 1)
-- 为每个ListView创建6个子按钮
for childIndex = 1, 6 do
local childBtnName = "child_btn_" .. magic_id .. "_" .. childIndex
local childBtn = GUI:Button_Create(listView, childBtnName, 0, 0,
"res/public/1900000612.png")
-- 设置按钮标题
GUI:Button_setTitleText(childBtn, "子按钮" .. childIndex)
-- 添加到ListView中
GUI:ListView_pushBackCustomItem(listView, childBtn)
-- 添加点击事件
GUI:addOnClickEvent(childBtn, function()
SL:Print("点击了技能" .. magic_id .. "的子按钮" .. childIndex)
end)
-- 保存子按钮引用(如果需要)
benyuanzhili.childBtnList = benyuanzhili.childBtnList or {}
benyuanzhili.childBtnList[magic_id] = benyuanzhili.childBtnList[magic_id] or {}
benyuanzhili.childBtnList[magic_id][childIndex] = childBtn
end
-- 布局ListView
GUI:ListView_doLayout(listView)
end
end
if not benyuanzhili.auto_click then
benyuanzhili.auto_click = true
benyuanzhili.click_magic_btn(1)
end
end
```
**代码说明:**
1. **为每个ListView创建子按钮**:在创建每个技能按钮的同时,为其对应的ListView创建6个子按钮
2. **子按钮命名**:使用格式 `child_btn_[magic_id]_[childIndex]` 确保唯一性
3. **按钮样式**:使用你指定的 `res/public/1900000612.png` 作为按钮背景
4. **添加到ListView**:使用 `GUI:ListView_pushBackCustomItem` 将子按钮添加到ListView中
5. **布局处理**:最后调用 `GUI:ListView_doLayout` 确保布局正确
6. **引用保存**:将子按钮引用保存到 `benyuanzhili.childBtnList` 中,方便后续操作
**注意:**
- 每个技能按钮(1-6)都会有一个独立的ListView
- 每个ListView中会创建6个子按钮
- 子按钮的点击事件已经添加,你可以根据 `childNameid` 进一步处理业务逻辑
- 记得在UI编辑器中调整ListView的大小和位置,确保子按钮能正常显示
这样修改后,你的每个技能按钮都会有一个包含6个子按钮的ListView了!