如何使用数据模型更改回收视图数据

时间:2019-05-18 18:01:00

标签: python kivy recycler-adapter datamodel

我正在用kivy构建一个聊天应用程序,并具有一个用户朋友的SelectableRecycleBoxLayout(效果很好)。我试图在用户每次从列表中选择一个朋友时切换到该聊天,并且我还在对消息使用回收站视图。现在我不使用数据模型或适配器(我是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

问题在于,每次我切换聊天时,标签故障都会出现,并且彼此之间有很大的空间。每次切换聊天时,我都会将聊天记录保存在词典列表列表中,因为我的聊天室数据是词典列表,所以我可以切换到我切换到的客户端索引中的聊天记录。看照片:

这是在切换聊天之前

这是在切换到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 = []

上面的代码在线程中,因此我检查是否进行了选择以及是否进行了数据切换。请在我将数据附加到数据中时可以解决此问题,但是当我重新定义数据时会出现故障:/

0 个答案:

没有答案