package com.lin.poweradapter.example.stickyheaders;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.ViewGroup;
import android.widget.TextView;
import com.lin.poweradapter.SingleAdapter;
import com.lin.poweradapter.example.R;
import com.lin.poweradapter.example.BaseViewHolder;
import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersAdapter;
import butterknife.BindView;
/**
* Created by lin18 on 2017/4/28.
*/
public class StickyHeadersAdapter extends SingleAdapter<City, StickyHeadersAdapter.ChildViewHolder> implements StickyRecyclerHeadersAdapter<RecyclerView.ViewHolder> {
public StickyHeadersAdapter(@Nullable Object listener) {
super(listener);
}
@Override
public ChildViewHolder onCreateVHolder(ViewGroup parent, int viewType) {
return new ChildViewHolder(parent, R.layout.stickyheader_item);
}
@Override
public void onBindVHolder(ChildViewHolder holder, int position) {
holder.title.setText(getItem(position).name);
}
@Override
public long getHeaderId(int position) {
return getItem(position).pys.charAt(0);
}
@Override
public RecyclerView.ViewHolder onCreateHeaderViewHolder(ViewGroup parent) {
return new HeaderViewHolder(parent, R.layout.item_pinned_header);
}
@Override
public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder, int position) {
String pys = getItem(position).pys;
if (!TextUtils.isEmpty(pys) && pys.length() > 0) {
if (holder != null && holder instanceof HeaderViewHolder && ((HeaderViewHolder) holder).city_tip != null)
((HeaderViewHolder) holder).city_tip.setText(pys.substring(0, 1));
}
}
public int getLetterPosition(String letter){
for (int i = 0 ; i < getItemCount(); i++){
if(getItem(i).pys.startsWith(letter)){
return i;
}
}
return -1;
}
static class ChildViewHolder extends BaseViewHolder {
@BindView(R.id.city_name)
TextView title;
ChildViewHolder(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
super(parent, layoutResId);
}
}
static class HeaderViewHolder extends BaseViewHolder {
@BindView(R.id.city_tip)
TextView city_tip;
HeaderViewHolder(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
super(parent, layoutResId);
}
}
}