package com.lzx.demo.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.lzx.demo.ItemDecoration.DoubleHeaderAdapter;
import com.lzx.demo.R;
public class DoubleHeaderTestAdapter extends RecyclerView.Adapter<DoubleHeaderTestAdapter.ViewHolder> implements
DoubleHeaderAdapter<DoubleHeaderTestAdapter.HeaderHolder, DoubleHeaderTestAdapter.SubHeaderHolder> {
private LayoutInflater mInflater;
public DoubleHeaderTestAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
final View view = mInflater.inflate(R.layout.item_test, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
viewHolder.item.setText("Item " + i);
}
@Override
public int getItemCount() {
return 50;
}
@Override
public long getHeaderId(int position) {
return position / 14;
}
@Override
public long getSubHeaderId(int position) {
return position / 7;
}
@Override
public HeaderHolder onCreateHeaderHolder(ViewGroup parent) {
final View view = mInflater.inflate(R.layout.super_header_test, parent, false);
return new HeaderHolder(view);
}
@Override
public SubHeaderHolder onCreateSubHeaderHolder(ViewGroup parent) {
final View view = mInflater.inflate(R.layout.header_test, parent, false);
return new SubHeaderHolder(view);
}
@Override
public void onBindHeaderHolder(HeaderHolder viewholder, int position) {
viewholder.timeline.setText("Header " + getHeaderId(position));
}
@Override
public void onBindSubHeaderHolder(SubHeaderHolder viewholder, int position) {
viewholder.date.setText("Sub-header " + getSubHeaderId(position));
}
static class ViewHolder extends RecyclerView.ViewHolder {
public TextView item;
public ViewHolder(View itemView) {
super(itemView);
item = (TextView) itemView;
}
}
static class HeaderHolder extends RecyclerView.ViewHolder {
public TextView timeline;
public HeaderHolder(View itemView) {
super(itemView);
timeline = (TextView) itemView;
}
}
static class SubHeaderHolder extends RecyclerView.ViewHolder {
public TextView date;
public SubHeaderHolder(View itemView) {
super(itemView);
date = (TextView) itemView;
}
}
}