我想在另一个布局中使用RecycleView,而不使用Kivy语言,但是我无法在窗口上显示数据。我在代码中写了哪些错误或遗漏了哪些内容?
我知道kv语言很好,但我不想在这个小项目中使用它
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.recycleboxlayout import RecycleBoxLayout
from kivy.uix.recycleview import RecycleView
class MainWidget(FloatLayout):
def __init__(self):
super().__init__()
self.create_layouts()
def create_layouts(self):
self.create_recycle_view()
def create_recycle_view(self):
recycle_view = RecycleView()
recycle_view.data = [{'text': str(x)} for x in range(20)]
recycle_view.viewclass = 'Label'
recycle_box_layout = RecycleBoxLayout()
recycle_box_layout.size_hint = (1, 0.2)
recycle_view.add_widget(recycle_box_layout)
self.add_widget(recycle_view)
class MainApp(App):
def build(self):
return MainWidget()
有些
RecycleView
类似乎有一些奇怪的副作用,导致viewclass
被设置为None
。因此viewclass
的设置必须晚于代码中的设置。此外,我认为RecycleView
的构建不应该采用MainWidget
的__init__()
方法。因此,基于此,您的代码的修改版本是:此代码使用
Clock.schedule_once()
(在App
的build()
方法中)构建RecycleView
。另外,RecycleBoxLayout
的height
绑定到它的minimum_height
属性相关问题 更多 >
编程相关推荐