在屏幕内使用RecycleView /表

时间:2018-11-14 23:00:40

标签: python kivy

我正在尝试使用kivy在表内部显示数据。我正在使用屏幕和屏幕管理器来切换GUI中的视图。

此屏幕基本上在做什么:

  1. 输入ID
  2. 从该ID获取信息
  3. 在表内部显示数据

我听说/阅读recycleview最合适,但是我只保存示例,这些示例是类继承的。由于我使用的是屏幕,因此我的课程继承了Screen类。

为了给您更好的了解,我将附加一些代码。将字典中的数据解析到当前布局下的表中的最佳方法是什么。

<SpielerScreen>:
match_id_text_input: match_id
summoner_list: summoner_list_view
BoxLayout:
    orientation: 'vertical'
    padding: 10
    spacing: 10
    BoxLayout:
        size_hint_y: None
        height: "40dp"        
        Label:
            text: "match id"
        TextInput:
            id: match_id
        Button:
            text: "Speichern"
            size_hint_x: 15
            on_press: root.save_state() 
    BoxLayout:
        size_hint_y: None
        height: "40dp"
        Button:
            text: "Add"
            on_press: root.add_match()
        Button:
            text: "Remove"
            on_press: root.remove_match()
        Button:
            text: "Load Match"
            on_press: root.load_match()   
        Button:
            text: "Stats"
            on_press: root.load_stats()        
        Button:
            text: 'Start'
            on_press: root.manager.current = 'start'
    ListView:
        id: summoner_list_view
        adapter:
            ListAdapter(data=[], cls=root.EsportsListButton) 

和班级

class SpielerScreen(Screen):
kills_string = StringProperty()

# ListitemButtons so ListAdapter in the .kv code works
class EsportsListButton(ListItemButton):
    pass

class SummonerListButton(ListItemButton):
    pass

def __init__(self, **kwargs):
    super(SpielerScreen, self).__init__(**kwargs)
    self.kills_string = 'initial'

# Kivy references
match_id_text_input: ObjectProperty()
summoner_name_text_input: ObjectProperty()
summoner_list: ObjectProperty()
data_items = ListProperty([])

summoner_name: StringProperty()


sm = ScreenManager()
ps = SpielerScreen(name='spieler')
class MainApp(App):
    def build(self):
        return sm


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

0 个答案:

没有答案