在docs中,可以将args_converter编写为常规函数或lambda函数,但我似乎无法将其与非lambda函数一起使用,而且我看到的所有示例都是lambda。
下面是我的一段代码:
def groupArgsConv(index, item):
res = {'text': item['title'],
'size_hint_y': None,
'heigth': '25dp'}
return res
self.ids.grouplist.adapter = ListAdapter(args_converter=groupArgsConv,
data=self.groups,
cls=ListItemLabel)
这不起作用,但这确实起作用了:
list_item_args_converter = lambda index, item: {'text': item['title'],
'size_hint_y': None,
'height': '25dp'}
self.ids.grouplist.adapter = ListAdapter(args_converter=list_item_args_converter,
data=self.groups,
cls=ListItemLabel)
为什么?我如何让第一个例子起作用?
发布于 2017-04-08 08:33:48
下面的代码适用于我:
from kivy.adapters.listadapter import ListAdapter
from kivy.uix.listview import ListItemLabel, ListView
from kivy.base import runTouchApp
data = [{'title': str(i)} for i in range(100)]
def groupArgsConv(index, item):
res = {'text': item['title'],
'size_hint_y': None,
'height': '25dp'}
return res
list_adapter = ListAdapter(
data=data,
args_converter=groupArgsConv,
cls=ListItemLabel)
if __name__ == '__main__':
runTouchApp(ListView(adapter=list_adapter))
你说的“不起作用”是什么意思?您是否在日志中遇到了某种异常或奇怪的输出?
https://stackoverflow.com/questions/43283481
复制相似问题