选中kivy RecycleView中的复选框,单击一个复选框会影响其他复选框
我尝试在RecycleView的每一行中放置一组两个复选框。但如果我单击一个复选框,其他一些复选框将受到影响。 如下图所示: 第25排、第37排也是如此。。。 下面是代码 main.py:选中kivy RecycleView中的复选框,单击一个复选框会影响其他复选框,kivy,Kivy,我尝试在RecycleView的每一行中放置一组两个复选框。但如果我单击一个复选框,其他一些复选框将受到影响。 如下图所示: 第25排、第37排也是如此。。。 下面是代码 main.py: from kivy.app import App from kivy.uix.boxlayout import BoxLayout class Root(BoxLayout): def __init__(self, **kwargs): super(Root, self).__i
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class Root(BoxLayout):
def __init__(self, **kwargs):
super(Root, self).__init__(**kwargs)
self.rv.data = [{'value': str(x)} for x in range(100)]
class MyApp(App):
def build(self):
return Root()
if __name__ == '__main__':
MyApp().run()
my.kv:
<Row@BoxLayout>:
canvas.before:
Color:
rgba: 0.5, 0.5, 0.5, 1
Rectangle:
size: self.size
pos: self.pos
value: ''
orientation: 'horizontal'
Label:
text: root.value
size_hint:0.45, 1
CheckBox:
group: root.value
size_hint:0.05, 1
state: 'down'
CheckBox:
group: root.value
size_hint:0.05, 1
<Root>:
rv: rv
RecycleView:
id: rv
viewclass: 'Row'
RecycleBoxLayout:
default_size: None, dp(56)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
:
在以下情况之前:
颜色:
rgba:0.5,0.5,0.5,1
矩形:
大小:self.size
pos:self.pos
值:“”
方向:“水平”
标签:
文本:root.value
尺寸提示:0.45,1
复选框:
组:root.value
尺寸提示:0.05,1
声明:“关闭”
复选框:
组:root.value
尺寸提示:0.05,1
:
房车:房车
回收审查:
id:rv
viewclass:“行”
循环利用布局:
默认大小:无,dp(56)
默认大小提示:1,无
尺寸提示:无
高度:自身最小高度
方向:“垂直”
这是非常简单的代码,但我不知道为什么。
你能帮忙吗
基维是1.10.0
根本原因是ViewClass被循环使用。
我们可以从RecycleDataViewBehavior派生viewclass(必须阅读代码)。
实现刷新\u视图\u属性。可能会将复选框的状态添加到recycleview的数据中。可以参考recycleview/init.py中SelectableLabel的示例。似乎每个页面上的同一行都受到了影响。这是由于viewclass的回收。但是我还没有找到一个优雅的方法来处理它。你能解决这个问题吗?我一直在研究一个类似的问题。