if topDescs then
removeLastLine()
ItemTips.PushItem(contentPanel, ItemTips.CreateIntervalPanel(contentPanel, _DefaultSpace / 2))
pushDescItem(topDescs, 1)
local lastItem = GUI:getChildByTag(contentPanel, ItemTips.itemC
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 14:43:11 |
👁️ 阅读: 0
要居中顶部描述,可以使用容器的宽度来计算文本位置。以下是修改方案:
```lua
if topDescs then
removeLastLine()
ItemTips.PushItem(contentPanel, ItemTips.CreateIntervalPanel(contentPanel, _DefaultSpace / 2))
pushDescItem(topDescs, 1)
local lastItem = GUI:getChildByTag(contentPanel, ItemTips.itemCount)
-- 获取容器尺寸
local containerSize = GUI:getContentSize(contentPanel)
local containerWidth = containerSize.width
-- 获取文本控件并设置居中
local textWidget = GUI:getChildByName(contentPanel, "Text_desc") -- 假设文本ID为Text_desc
if textWidget and not GUI:Win_IsNull(textWidget) then
-- 获取文本尺寸
local textSize = GUI:getContentSize(textWidget)
local textWidth = textSize.width
-- 计算居中位置
local centerX = (containerWidth - textWidth) / 2
GUI:setAnchorPoint(textWidget, 0.5, 0.5)
GUI:setPosition(textWidget, centerX, GUI:getPosition(textWidget).y)
end
ItemTips.PushItem(contentPanel, ItemTips.CreateIntervalPanel(contentPanel, _DefaultSpace, true))
end
```
关键步骤:
1. 使用 `GUI:getContentSize(contentPanel)` 获取容器宽度
2. 使用 `GUI:getContentSize(textWidget)` 获取文本宽度
3. 计算居中位置:`(容器宽度 - 文本宽度) / 2`
4. 设置锚点为 `(0.5, 0.5)` 实现中心对齐
5. 使用 `GUI:setPosition()` 调整文本位置
注意:需要根据实际的文本控件ID(如"Text_desc")来获取对应的控件对象。
← 返回问答库