if SL:GetMetaValue("GAME_DATA", "NeedResetPosWithChat") then
local idList = string.split(SL:GetMetaValue("GAME_DATA", "NeedResetPosWithChat"), "#")
for _, id in ipairs(idList) do
local i = tonumber(id)
从代码分析来看,`yinc` 隐藏后不显示的问题在于这段逻辑:
```lua
local yinc = GUI:Win_FindParent(108)
GUI:setVisible(yinc, false)
```
这段代码在聊天框展开时(`not state` 条件)会隐藏 `yinc` 控件,但没有在聊天框收起时(`state` 为 `true`)重新显示它。
要修复这个问题,需要在聊天框收起时重新显示 `yinc` 控件。修改后的代码如下:
```lua
local yinc = GUI:Win_FindParent(108)
if not tolua.isnull(widget) then
if not oriPosYList[name] then
oriPosYList[name] = GUI:getPositionY(widget)
end
local setY = not state and oriPosYList[name] - (chatHei) or oriPosYList[name]
GUI:runAction(widget, GUI:ActionMoveTo(0.5, GUI:getPositionX(widget), setY))
-- 修改这里:根据聊天框状态控制 yinc 的显示/隐藏
if not state then
-- 聊天框展开时隐藏 yinc
GUI:setVisible(yinc, false)
else
-- 聊天框收起时显示 yinc
GUI:setVisible(yinc, true)
end
end
```
关键修改点:
1. 将 `GUI:setVisible(yinc, false)` 移动到条件判断内
2. 添加 `else` 分支,在聊天框收起时执行 `GUI:setVisible(yinc, true)`
这样就能确保 `yinc` 控件在聊天框收起时重新显示出来。如果还有其他显示问题,可能是 `yinc` 的层级设置或透明度问题,可以进一步检查控件的属性设置。