2016-09-25 7 views
0

메시지가 속한 날짜를 보여주는 채팅에서 날짜 목록 항목을 만들려면 어떤 방법을 사용해야하는지 알아 내려고합니다.채팅을 위해 recyclerview에서 날짜를 추가하는 방법은 무엇입니까?

목록은 다음과 같을 것이다 : 나는 그것을 할 수

--- 1 week ago --- 
msg 
msg 
msg 
msg 
msg 
----- today ----- 
msg 
msg 
msg 
msg 

한 가지 방법은 결정하는 몇 가지 논리를 사용하여 다음 날짜 시간 목록 항목을 만들고 의해 인 위치 날짜 - 시간 -리스트 항목이해야에 가기.

날짜를 표시하기 위해 사용자 지정 목록 구분선을 만드는 것이 가능할 수도 있지만 가능한지 확실하지 않습니다.

어떻게 처리할까요?

답변

3

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(...); 
      ... 
     } 
    } 
} 
+0

예, 이것이 실제로가는 길입니다. 방금 다르게 다룰 수 있을지도 모른다고 생각했습니다. 실제 목록 항목에 날짜 시간을 설정하면 채팅 목록에 다소 복잡성이 생길 수 있지만 어쩔 수없는 일입니다. – CantThinkOfAnything

+0

날짜 - 시간의 복잡성에 관해서는 귀하가 옳습니다. 그래서 그들은 백엔드 부분에서 생성 될 것입니다 :-) –

+0

날짜가 필요하지 않습니다. 단지 10 가지 이상의 항목 유형과 항목 위치를 사용하여 어떤 종류의 항목이 있어야하는지 결정하는 꽤 복잡한 논리가 있습니다. 정보. 날짜를 표시하는 데만 더 많은 유형을 추가하면 현재의 논리를 확장하여 날짜 항목을 통합하도록 요청합니다. p – CantThinkOfAnything

관련 문제