Python 使用Kivy的RecycleView进行类继承
我试图创建一个通用的RecycleView,并从中继承viewclass,如下所示:Python 使用Kivy的RecycleView进行类继承,python,kivy,kivy-language,Python,Kivy,Kivy Language,我试图创建一个通用的RecycleView,并从中继承viewclass,如下所示: <GenericList@RecycleView>: SelectableRecycleBoxLayout: canvas.before: Color: rgba: (.0, 0.9, .5, .8) Rectangle: pos: self.pos
<GenericList@RecycleView>:
SelectableRecycleBoxLayout:
canvas.before:
Color:
rgba: (.0, 0.9, .5, .8)
Rectangle:
pos: self.pos
size: self.size
default_size: None, 30
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
multiselect: False
<SetList@GenericList>:
viewclass: 'SetSelectableLabel'
<CardList@GenericList>:
viewclass: 'CardSelectableLabel'
RecycleView:
RecycleBoxLayout:
SetSelectableLabel和CardSelectableLabel之间的区别在于所选事件调用的方法。
我注意到,当使用此配置运行应用程序时,RecycleView不会显示任何viewclass对象。列表就在那里,我可以滚动它并看到滚动条在移动,但是没有显示任何标签
但是,如果我像下面那样在RecycleView中定义viewclass,那么一切都可以正常工作,除了我不能做我想做的事情,即更改继承类上的viewclass以实现自定义行为
<GenericList@RecycleView>:
viewclass: 'GenericSelectableLabel'
我在这里遗漏了什么吗?RecycleView是一个不完整的小部件。有很多事情你做不到。例如:
rv=可回收视图
rv.add_widgetRecycleBoxLayout
上面的代码不起作用。您必须从kv构建一个小部件树,如下所示:
<GenericList@RecycleView>:
SelectableRecycleBoxLayout:
canvas.before:
Color:
rgba: (.0, 0.9, .5, .8)
Rectangle:
pos: self.pos
size: self.size
default_size: None, 30
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
multiselect: False
<SetList@GenericList>:
viewclass: 'SetSelectableLabel'
<CardList@GenericList>:
viewclass: 'CardSelectableLabel'
RecycleView:
RecycleBoxLayout:
viewclass就是其中之一。您无法动态更改它,因此下面的代码:
rv=锅炉荷载_管柱'
回收审查:
循环利用布局:
'
rv.viewclass='Label'不起作用
不起作用。我不确定这是问题的原因,但你只需要意识到这种不完整性 我认为这与小部件是新的这一事实有关,但文档明确指出我应该使用RecycleView,而不是好的和旧的ListView。ListView甚至从最新版本的文档中删除。。。另外,刚刚检查过,它完全从v1.11.1中删除。我喜欢kivy,但老兄,不赞成ListView而赞成RecycleView的混乱是一个错误。