我试图弄清楚要在聊天中创建日期列表项目的方式,以显示消息所属的日期。
列表如下所示:
throw std::domain_error(domain_error(key));
我能做到的一种方法是创建日期时间列表项,然后使用一些逻辑来决定日期时间列表项应该去哪个位置。
我当时认为可以创建一个自定义列表分隔符来显示日期,但我不确定这是否可行。
你们怎么处理这个?
答案 0 :(得分: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(...);
...
}
}
}