如何在recyclerview中添加聊天日期?

Can*_*ing 0 java android android-recyclerview

我试图弄清楚要在聊天中创建日期列表项的方式,以显示消息所属的日期。

该列表如下所示:

--- 1 week ago ---
msg
msg
msg
msg
msg
----- today -----
msg 
msg 
msg
msg
Run Code Online (Sandbox Code Playgroud)

我可以做到的一种方法是创建日期时间列表项,然后使用某种逻辑来确定日期时间列表项应位于哪个位置。

我以为可能可以创建一个自定义列表分隔符来显示日期,但是我不确定是否可行。

你们将如何处理?

Mir*_*rov 5

您知道RecyclerView有多种视图类型。这意味着您可以根据需要绘制预定义的行。

在聊天示例中,确切的日期和消息数据将在服务器端填充。您只需要绘制就绪信息(也许是json)。

我希望这个建议可以节省您的时间。

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    class ViewHolder0 extends RecyclerView.ViewHolder {
        ...
    }

    class ViewHolder2 extends RecyclerView.ViewHolder {
        ...
    }

    @Override
    public int getItemViewType(int position) {
        // Just as an example, return 0 or 2 depending on position
        // Note that unlike in ListView adapters, types don't have to be contiguous
        return position % 2 * 2;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         switch (viewType) {
             case 0: return new ViewHolder0(...);
             case 2: return new ViewHolder2(...);
             ...
         }
    }
}
Run Code Online (Sandbox Code Playgroud)