Использование RecycleView / таблиц внутри экранов - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь отобразить данные внутри таблицы с KIVY.Я использую экраны и менеджер экрана, чтобы иметь возможность переключать представления в графическом интерфейсе.

Что в основном делает этот экран:

  1. Ввод идентификатора
  2. Извлечение информации из этого идентификатора
  3. Отображение данных внутри таблицы

Я слышал / читал recycleview лучше всего подходит, но я сохраняю только примеры, где классы наследовали его,Так как я использую экраны, мои классы наследуют класс Screen.

Чтобы лучше рассмотреть его, я приложу некоторый код.Что было бы самым хорошим способом, чтобы разобрать данные из dict в таблицу под текущим Layout.

<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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...