我的代码工作正常,但在包含小部件库之后,输出变得混乱。你能告诉我这是什么问题吗?
--Include sqlite
local sqlite3 = require "sqlite3"
local widget = require "widget"
W=display.contentWidth
H=display.contentHeight
--Open library database file
local path = system.pathForFile("library", system.ResourceDirectory)
db = sqlite3.open( path )
title = display.newText("LIBRARY", 0, 0, nil, 30)
title.x = W/2 title.y=50
--Access records of book table and display them as nx2 grid with title and cover.
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
编辑:
在包含小部件之前:
包含小部件后:
答案 0 :(得分:1)
好的,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("--------")
比较包含/不包含小部件的输出,您应该能够找到问题。