使用Recycleview时似乎无法解决从数据库中获取数据以填充到各种文本输入中的问题。该问题仅在我使用ScreenManager / Screen时存在。当我直接从def build(self): return Screen
调用屏幕时,一切正常,但是当我像这样def build(self): return ScreenManager
kv文件
<Button>:
on_press: app.root.get_data(*args)
<Screen>:
BoxLayout:
orientation: 'vertical'
size_hint_x: .3
RV:
viewclass: 'Button'
data: [{'text': str(x)} for x in root.my_data]
RecycleBoxLayout:
orientation: 'vertical'
default_size: None, dp(32)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
答案 0 :(得分:1)
方法get_data()
和变量my_data在Screen类中实现。如果没有ScreenManager,则根目录为Screen。添加ScreenManager之后,现在的根目录为ScreenManager。为了从类规则Button中访问方法get_data()
,您需要执行以下操作:
id: screen_rv
下添加<Screen>
ScreenManager
替换为app.root.get_data(*args)
app.root.ids.screen_rv.get_data(*args)