MainCollect = {}
function MainCollect.main()
local parent = GUI:Attach_Parent()
GUI:LoadExport(parent, "main/collect/collect")
MainCollect._ui = GUI:ui_delegate(parent)
-- 采集列表
MainCollect._selectList = MainCollect._ui.List_Col
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-23 13:30:42 |
👁️ 阅读: 14
要调整采集UI到快捷栏上方并保持分辨率适配,需要修改坐标和适配逻辑。
从代码看,采集UI目前没有坐标设置,需要添加适配代码。参考MainProperty的适配方法,可以这样修改:
```lua
MainCollect = {}
function MainCollect.main()
local parent = GUI:Attach_Parent()
GUI:LoadExport(parent, "main/collect/collect")
MainCollect._ui = GUI:ui_delegate(parent)
-- 采集列表
MainCollect._selectList = MainCollect._ui.List_Collect_Select
-- 采集列表底图
MainCollect._selectListBg = MainCollect._ui.Layout_BG
-- 添加快捷栏上方适配
MainCollect.InitAdapet()
end
-- 采集UI适配函数
function MainCollect.InitAdapet()
local screenW = SL:GetMetaValue("SCREEN_WIDTH")
local screenH = SL:GetMetaValue("SCREEN_HEIGHT")
-- 获取快捷栏位置信息(假设快捷栏在屏幕底部)
local quickBarHeight = 100 -- 快捷栏高度,需要根据实际UI调整
-- 设置采集UI在快捷栏上方
local collectX = screenW / 2 -- 水平居中
local collectY = screenH - quickBarHeight - 50 -- 快捷栏上方50像素
if MainCollect._ui.Panel_1 then
GUI:setPosition(MainCollect._ui.Panel_1, collectX, collectY)
end
end
-- 采集UI显示 (内部调用)
function MainCollect.ShowCollectUI()
local showSelect = tonumber(SL:GetMetaValue("GAME_DATA", "Hide_Select_Collection")) ~= 1
GUI:setVisible(MainCollect._ui.Panel_1, true)
GUI:setTouchEnabled(MainCollect._ui.Panel_1, true)
GUI:Text_setString(MainCollect._ui.Text_1, "可采集")
if not MainCollect._selectList then
return
end
GUI:setVisible(MainCollect._selectList, showSelect)
GUI:setVisible(MainCollect._selectListBg, showSelect)
if showSelect then
GUI:setTouchEnabled(MainCollect._selectList, true)
end
end
```
主要修改:
1. 在`main()`函数末尾添加了`MainCollect.InitAdapet()`调用
2. 新增`InitAdapet()`函数,根据屏幕分辨率计算坐标
3. 采集UI会显示在快捷栏上方50像素位置
4. 使用`SL:GetMetaValue("SCREEN_WIDTH")`和`SL:GetMetaValue("SCREEN_HEIGHT")`获取屏幕尺寸,确保分辨率切换时坐标一致
注意:`quickBarHeight`需要根据实际快捷栏高度调整,如果快捷栏高度不固定,可能需要从快捷栏UI获取实际高度。
← 返回问答库