【问题标题】:Adding textfield in table row - Corona SDK在表格行中添加文本字段 - Corona SDK
【发布时间】:2014-01-31 07:33:06
【问题描述】:

在我的电晕项目中,我想在表格行中显示文本字段。这里的代码,它只显示一个文本字段,我想在数据可用行中显示文本字段。

local function onRowRender( event )
local phase = event.phase
local row = event.row

local itemObj = GetItemDetails(row.index);

local txt = itemObj.itemName;
if(#txt > 25) then
    txt = string.sub(txt,1,25);
    txt = txt.."..";
end

local rowTitle = display.newText( row, "\t"..txt, 0, 0, "impact", 14 )
if(deviceName == "iPhone" or deviceName == "iPad") then
    rowTitle.x = row.x - ( row.contentWidth * 0.5 ) + ( rowTitle.contentWidth * 0.5 )
else
    rowTitle.x = row.x - ( row.contentWidth * 0.5 ) + ( rowTitle.contentWidth * 0.5 )+15
end
rowTitle.y = row.contentHeight * 0.5
rowTitle:setTextColor(98, 71, 24)

local rowqtytxt=nil; 
if(deviceName == "iPhone" or deviceName == "iPad") then
    rowqtytxt= native.newTextField( 0, 0,32, 32 ,onSubmitted);
    rowqtytxt.x = 125;
    rowqtytxt.hasBackground = false;
    --rowqtytxt:addEventListener( "userInput", textListener )
    rowqtytxt.size = 32;
else
    rowqtytxt = native.newTextField( 0, 0,32, 32 ,onSubmitted);
    rowqtytxt.x = 207;
    rowqtytxt.hasBackground = false;
   -- rowqtytxt:addEventListener( "userInput", textListener )
    rowqtytxt.size = 32;
end

rowqtytxt.y = row.contentHeight * 0.5
rowqtytxt:setTextColor(98, 71, 24)
return true;
end

上面的代码只显示一个文本字段。请帮忙解决这个问题

【问题讨论】:

    标签: lua coronasdk corona-storyboard


    【解决方案1】:

    当您说“数据可用行”时,您是什么意思?在我看来,您的意思是 itemObj 中并不总是有数据?

    如果是这种情况,那么您需要将添加的文本字段包装在 if 块中:

    if(itemObj ~= nil) then
        --Adding textField code
    end
    

    此外,此函数似乎呈现单行。因此,您需要将其包装在 for 循环中。类似的东西

    local i;
    --The # means 'length of'
    for i=1, #yourDataSource do
        onRowRender(yourItemData)
    end
    

    【讨论】:

      【解决方案2】:

      在 Corona SDK 中,widget.newTableView 是基于显示组的。您不能将 native.* 对象插入显示组。因此,tableView 不能将文本字段作为行的一部分滚动。

      几周前有一个教程,我们在其中演示了如何将 native.newTextField 绑定到显示组。 http://coronalabs.com/blog/2013/12/03/tutorial-customizing-text-input/

      有一个社区项目正在构建您可以在论坛上找到的教程中的想法的变体。

      这个想法是使用 enterFrame 侦听器将 native.newTextField 移动到它所绑定的显示对象的任何位置。但是,这对于 tableView 来说不实用的是,当 tableView 将行滚动到屏幕外时,它们可能无法正确删除。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多