大家可能都知道,通常在聊天应用程序中,比如(whatsapp,信使.)您会注意到,聊天项目包括一个日期项目在中间。现在我对此进行了研究,并注意到这与多视图类型所调用的内容有关。
但
如果它真的是一个多视图类型的东西,那么为什么它是这样工作的。例如,我有一个带有蓝色项目、绿色项目和日期的聊天应用程序,然后我应该这样做:
public int getItemViewType(int position){
ItemMessage item = my_list.get(position);
if(item.getType.equals("blue")){
return BLUE;
}else if(item.getType.equals("green")){
return GREEN;
}else{
return 0;
}
}直到这里,我知道什么项目显示蓝色(走向信息)和绿色(即将到来的一个)。
我的问题:关于日期项,它是添加到数据库中的项目吗?还是项目中的视图被隐藏或显示?这些聊天应用程序是如何做到的?
谢谢。
编辑
我知道日期来自服务器,但我在聊天对象之间使用日期对象。我将数据作为json存储在服务器上,如下所示:
chat_messages
|
|
---item1
|
|----message: "hello"
|----type: "green"
|----timestamp:......
----item2
|
|---message: "hey there"
|---type: "blue"
|---timestamp:.........如果我在上面找到的话,我会在回收视图中找到这个
|-------------
item 1
|-------------
|----------------
item 2
|---------------- 我再次提出的问题是,日期是否也应视为这样一个项目:
date_item
|
|---type: "date"
|---timestamp: ..... 希望我解释得很清楚。
发布于 2018-04-06 19:41:10
获取请求-> --您现在拥有数据( GREEN或BLUE类型)。如您所说,数据包含类型和日期。
日期相同,可以是BLUE类型,也可以是GREEN类型。
所以是。日期来自服务器。
编辑:不,它不应该,您的项目架构应该如下:
item1
-----------
message: "hey"
type: "green"
date: "13.1.2004"
timestamp: "..."
...https://stackoverflow.com/questions/49699719
复制相似问题