как использовать модель данных для изменения данных повторного просмотра - PullRequest
0 голосов
/ 18 мая 2019

Я создаю чат-приложение с kivy и имею SelectableRecycleBoxLayout друзей пользователей (работает хорошо).Я пытаюсь переключать чаты каждый раз, когда пользователь выбирает друга из списка для этого чата, и я также использую представление корзины для сообщений.сейчас я не использую datamodel или адаптер (я новичок в kivy).это часть списка друзей:

class SelectableLabel(RecycleDataViewBehavior, Label):
  def apply_selection(self, rv, index, is_selected):
    ''' Respond to the selection of items in the view. '''
    self.selected = is_selected
    global dest,chats,convos, selection
    if is_selected:
        dest = [value for value in rv.data[index].values()]
        print(dest)
        selection = True

проблема в том, что каждый раз, когда я переключаю чаты, появляются ярлыки сбоев и большие промежутки между ними.Я сохранял чаты в списке списков словарей и каждый раз, когда я переключаю чаты, я могу переключиться на чат в индексе клиента, на которого я переключился (потому что данные RV - это список словарей).см. фотографии:

это до переключения чатов

это после перехода в noam и затем обратно в ron

    if selection and dest != "":
        if dest[0] in convos:
            i = convos.index(dest[0])
        else:
            convos.append(dest[0])
            chats.append([])
            i = convos.index(dest[0])
        self.ids.messages.data = chats[i]
        selection = False
        print("changed selection")
    my_client.new_messages = []

приведенный выше код находится в потоке, поэтому я проверяю, был ли сделан выбор и переключался ли я на данные.пожалуйста, помогите мне исправить это, , когда я добавляю данные, все в порядке, но когда я переопределяю их, это глючит : /

...