2016-09-25 5 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

関連する問題