表视图未注册任何事件电晕



我正在尝试使用Corona中的TableView小部件创建项目列表。我按照他们的在线示例创建了 TableView。它出现在屏幕上并且可以滚动,但是当我单击一行时不会触发任何事件,即使我为OnRowTouch设置了侦听器。

local options_for_list_view = {
  id = "list_view",
  top = 0,
  left = 0,
  width = display.contentWidth,
  height = display.contentHeight,
  hideBackground = true,
  hideScrollBar = true,
  listener = on_table_touch,
  onRowRender = onRowRender,
  onRowTouch = on_row_touch, -- registering listener
}
list_view = widget.newTableView(options_for_list_view)
for key, value in pairs(trophy_list) do
  local params = 
  {
    name = key
  }
  list_view:insertRow
  {
    isCategory = false,
    rowHeight = total_height * 0.1,
    rowColor = rowColor,
    lineColor = { 0, 0, 0 },
    params = params
  }
end

这是侦听器:

local function on_row_touch( event )
  print("error")
end

有谁知道问题可能是什么?

您应该在将on_row_touch( event )函数添加到options_for_list_view之前对其进行定义。

Lua 中的对象的创建顺序与源中列出的顺序相同。因此,在您的情况下,您只是将nil放入onRowTouch事件的听众位置。在那之后,创建了一个本地函数,该函数应该是事件侦听器:)

一些适当的静态分析工具应该有助于摆脱这种错误......

祝你好运;)

简体版:

print(foo())
function foo()
    return "some_value..."
end

输出:

lua: ./call_test.lua:1: attempt to call global 'foo' (a nil value)

相关内容

  • 没有找到相关文章

最新更新