2017-01-13 10 views
0

RecyclerViewに表示される日付フィールドを持つPOJOがあります。今、私は特定の日付の最初の項目にのみ日付を表示したいと思います。 つまり、日付が01/13/2017の4つのアイテムがある場合、残りの3つのアイテムではなく、最初のアイテムに日付が表示されます。 アイデア値を基にしたrecyclerviewのグループ項目

答えて

0

RecyclerViewのアイテムを表示する前に、すべての最初のアイテムをブール値でマークします。 アダプタのメソッドで、あなたのアイテムオブジェクトがマークされている場合にのみ、日付情報を表示します。 明らかに、リサイクルの問題を避けるために、すべてのアイテムに日付を表​​示して非表示にすることを忘れないでください。

+0

重要なのは日付だけではないということです。数十の異なる日付かもしれない。しかし、各日付については、最初の項目のみが日付が表示されます – DeKekem

0

アダプタにこのようなものを追加します。

onBindViewHolder(..) { 
     holder.itemView.dateTextView.setVisibility(hasDate(position) ? View.VISIBLE : View.GONE) 
    } 

    private boolean hasDate(int position){ 
      if (position == 0) 
       return true; 
      return !items.get(position).getDate().equals(items.get(position-1).getDate()); 
    } 
1

はあなたのアダプタクラスでonBindViewHolderの方法でそれをしなければなりません。アイテムの位置は0から始まります。したがって、最初のアイテムの位置は0になります。最初のアイテムの表示には日付が使用され、その他のアイテムには日付ビューアが表示されません。

public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { 

    // other methods.. 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     // initialize your other views 

     if (position == 0){ 
      // set your date here 
      holder.textViewDate.setText(ages.get(position)); 
     }else{ 
      // this will disappear the date viewer 
      holder.textViewDate.setVisibility(View.GONE); 
     } 
    } 
} 
関連する問題