如何在Kivy上制作多列ListView?

时间:2018-11-05 21:42:21

标签: python kivy kivy-language

我最近一直在从事一个项目,该项目需要使用ListView显示多列列表。

我已经做了一个单列列表,从数据库中提取数据。我确实考虑过使用RecycleView,但是我的类已经继承了Screen类,因此我真的很想继续使用ListView。

在这种情况下,由于数据是从数据库中提取的,因此它们是动态的,因此硬编码不是很多选择。

我到处都在寻找这种解决方案,但是找不到。

编辑

下面是一个代码示例。在这种情况下,我在Screen_1类上继承了Kivy的Screen类。对于这种情况,如果我需要多列,该怎么办?如何使用RecycleView或ListView编写双列列表?

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.listview import ListView
from kivy.properties import StringProperty, ObjectProperty, ListProperty
from kivy.base import Builder
from kivy.uix.stacklayout import StackLayout
from kivy.uix.recycleview import RecycleView

Builder.load_string('''
#:import label kivy.uix.label
#:import sla kivy.adapters.simplelistadapter


<Screen_Display>:
    BoxLayout:
        orientation: "vertical"

        BoxLayout:
            size_hint: 1, None
            orentation: "vertical"
            height: '48dp'
            Button:
                text: '1'
                on_release: sm.current = 'screen_1'


        ScreenManager:
            id: sm
            Screen_1:

<Screen_1>:
    name: 'screen_1'
    ListView:
        adapter:
            sla.SimpleListAdapter(data=["Item #{0}".format(i) for i in range(100)],cls=label.Label)
        canvas.before:
            Color:
                rgb: .5, .5, .5
            Rectangle:
                pos: self.pos
                size: self.size

''')

class Screen_1(Screen):
    pass

class Screen_Display(Screen):
    pass

class MyApp(App):
    def build(self):
        return Screen_Display()

if __name__ == '__main__':
    MyApp().run()

0 个答案:

没有答案