package com.lin.poweradapter.example.headerfooter;
import android.support.annotation.IntRange;
import android.support.annotation.LayoutRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.lin.poweradapter.SingleAdapter;
import com.lin.poweradapter.example.Analog;
import com.lin.poweradapter.example.R;
import com.lin.poweradapter.example.BaseViewHolder;
import butterknife.BindView;
/**
* Created by lin18 on 2017/5/2.
*/
public class HeaderFooterAdapter extends SingleAdapter<Analog, BaseViewHolder> {
public HeaderFooterAdapter(@Nullable Object listener) {
super(listener);
}
@Override
public boolean isSelectable(@IntRange(from = 0) int position) {
return true;
}
@Override
public BaseViewHolder onCreateVHolder(ViewGroup parent, int viewType) {
return new ChildViewHolder(parent, R.layout.analog_item);
}
@Override
protected BaseViewHolder getHeaderHolder(ViewGroup parent) {
return new HeaderViewHolder(parent, R.layout.header_layout);
}
@Override
protected BaseViewHolder getFooterHolder(ViewGroup parent) {
return new FooterViewHolder(parent, R.layout.footer_layout);
}
@Override
public void onBindViewHolder(final BaseViewHolder holder, final int position) {
super.onBindViewHolder(holder, position);
if (getItemViewType(position) == HEADER) {
final HeaderViewHolder vh = (HeaderViewHolder) holder;
vh.icon.setImageResource(R.drawable.ic_airplay);
} else if (getItemViewType(position) == FOOTER) {
final FooterViewHolder vh = (FooterViewHolder) holder;
vh.icon.setImageResource(R.drawable.ic_visibility);
}
}
@Override
public void onBindVHolder(BaseViewHolder holder, int position) {
final Analog analog = getItemExcludeHeader(position);
final ChildViewHolder vh = (ChildViewHolder) holder;
vh.title.setText(analog.text);
if (analog.resId > 0) {
vh.icon.setImageResource(analog.resId);
vh.icon.setVisibility(View.VISIBLE);
} else {
vh.icon.setVisibility(View.GONE);
}
}
static class ChildViewHolder extends BaseViewHolder {
@BindView(android.R.id.icon)
ImageView icon;
@BindView(android.R.id.title)
TextView title;
ChildViewHolder(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
super(parent, layoutResId);
}
}
static class HeaderViewHolder extends BaseViewHolder {
@BindView(android.R.id.icon)
ImageView icon;
HeaderViewHolder(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
super(parent, layoutResId);
}
}
static class FooterViewHolder extends BaseViewHolder {
@BindView(android.R.id.icon)
ImageView icon;
FooterViewHolder(@NonNull ViewGroup parent, @LayoutRes int layoutResId) {
super(parent, layoutResId);
}
}
}