Я создаю чат-приложение с 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 = []
приведенный выше код находится в потоке, поэтому я проверяю, был ли сделан выбор и переключался ли я на данные.пожалуйста, помогите мне исправить это, , когда я добавляю данные, все в порядке, но когда я переопределяю их, это глючит : /