在docs中显示args_converter可以写为常规函数或lambda函数,但我似乎无法将其与非lambda函数一起使用,我看到的所有例子都是lambdas。
这是我的一段代码:
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)
为什么呢?我如何让第一个例子起作用?
答案 0 :(得分:1)
此代码适用于我:
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))
你是什么意思"没有工作"?你在日志中有某种异常或奇怪的输出吗?