package com.novoda.stickyheaderstest; import android.content.Context; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; public class ImagesAdapter extends BaseAdapter { private static final Integer HEADER_ITEM = -1; private static final Integer[] COLORS = { HEADER_ITEM, HEADER_ITEM, Color.BLUE, Color.BLACK, Color.YELLOW, Color.CYAN, Color.MAGENTA, Color.BLUE, Color.DKGRAY, Color.GREEN, Color.GRAY, Color.BLUE, Color.LTGRAY, Color.MAGENTA, Color.BLACK, Color.YELLOW, Color.CYAN, Color.MAGENTA, Color.BLUE, Color.DKGRAY, }; private static final int HEADER_TYPE = 0; private static final int DEFAULT_TYPE = 1; private static final int VIEW_TYPE_COUNT = 2; private final Context context; public ImagesAdapter(Context context) { this.context = context; } @Override public int getCount() { return COLORS.length; } @Override public Integer getItem(int position) { return COLORS[position]; } @Override public long getItemId(int position) { return position; } @Override public boolean hasStableIds() { return true; } @Override public boolean areAllItemsEnabled() { return false; } @Override public boolean isEnabled(int position) { return getItemViewType(position) == DEFAULT_TYPE; } @Override public int getItemViewType(int position) { return COLORS[position] == HEADER_ITEM ? HEADER_TYPE : DEFAULT_TYPE; } @Override public int getViewTypeCount() { return VIEW_TYPE_COUNT; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (getItemViewType(position) == HEADER_TYPE) { convertView = new View(context); convertView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 500)); convertView.setBackgroundColor(Color.WHITE); return convertView; } if (convertView == null) { convertView = new View(context); convertView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 300)); } Integer item = COLORS[position]; convertView.setBackgroundColor(item); return convertView; } }