在 Corona 中导入“widget”库后,我的代码输出会损坏。

我的代码本来运行正常,但是在包含小部件库后,输出变得混乱了。请问问题出在哪里?

--包含 SQLite
local sqlite3 = require "sqlite3"
local widget = require "widget"

W=display.contentWidth
H=display.contentHeight

--打开库数据库文件
local path = system.pathForFile("library", system.ResourceDirectory)
db = sqlite3.open( path )

title = display.newText("图书馆", 0, 0, nil, 30)
title.x = W/2 title.y=50

--访问书籍表的记录,并将它们作为nx2网格带标题和封面显示。
xOffset = 10
yOffset = 100
items = display.newGroup()
for row in db:nrows("SELECT * FROM book") do
   local text = row.bookName
   local img = display.newImageRect("img"..row.bookId..".jpg", 200, 200 )
   local t = display.newText(text, 0, 0, nil, 25)
   t.x = img.x
   t.y = img.contentBounds.yMax+50
   item = display.newGroup(img,t)
   item.anchorChildren = true
   items:insert(item)
   items.anchorChildren = true

   if(xOffset==10) then
     item.anchorX, item.anchorY = 0,0
     item.x = xOffset
     xOffset = W-10
     item.y = yOffset
     --t:setTextColor(0,255,0)
   else
     item.anchorX, item.anchorY = 1,0
     item.x = xOffset
     xOffset= 10
     item.y = yOffset
     yOffset = yOffset+item.contentBounds.yMax-50
     --t:setTextColor(255,0,0)
   end
end

编辑:

添加小部件之前:

enter image description here

添加小部件之后:

enter image description here

点赞
用户1609914
用户1609914

好的,很明显items显示组中的对象所受影响-注意图书馆文本不在该组中,保持在原位置。

在设置条目的x和y之后,打印出其位置。还要打印出组的位置和尺寸-这将使您更好地了解定位从何处进行,或原点(0,0)在何处。

local i = 1;
for row in db:nrows("SELECT * FROM book") do
    local text = row.bookName
    local img = display.newImageRect("img"..row.bookId..".jpg", 200, 200 )
    local t = display.newText(text, 0, 0, nil, 25)
    t.x = img.x
    t.y = img.contentBounds.yMax+50
    item = display.newGroup(img,t)
    item.anchorChildren = true
    items:insert(item)
    items.anchorChildren = true

    if(xOffset==10) then
        item.anchorX, item.anchorY = 0,0
        item.x = xOffset
        xOffset = W-10
        item.y = yOffset
        --t:setTextColor(0,255,0)
    else
        item.anchorX, item.anchorY = 1,0
        item.x = xOffset
        xOffset= 10
        item.y = yOffset
        yOffset = yOffset+item.contentBounds.yMax-50
        --t:setTextColor(255,0,0)
    end
    print("--------")
    print("Item "..tostring(i).." is at ("..tostring(item.x)..","..tostring(item.y)..")")
    print("Item group now at ("..tostring(items.x)..","..tostring(items.y)..")")
    print("Item group size = width:"..tostring(items.contentWidth)..", height:"..tostring(items.contentHeight))
end
print("--------")

比较包括小部件和不包括小部件的输出,您应该能够找到问题所在。

2014-01-27 10:41:14