如何使用数据模型来更改RecycleView

2024-06-16 15:59:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我建立了一个聊天应用程序与kivy和有一个可选择的可回收利用的用户朋友布局(工程良好)。每次用户从列表中选择一个朋友时,我都会尝试切换聊天,我也会使用消息的循环视图。现在我没有使用数据模型或适配器(我对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数据是字典列表)。请看照片:

这是在切换聊天之前

这是在切换到诺姆之后,然后又回到罗恩

    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 = []

上面的代码在一个线程中,所以我正在检查是否有选择,如果有,我切换数据。请帮助我解决这个问题,当我附加到数据时,它是正常的,但当我重新定义它时,它会出现小故障


Tags: 数据用户inself列表indexifis