public override View GetView(int position, View convertView, ViewGroup parent)
		{
			Position adapterPosition = TranslatePosition(position);
			if (adapterPosition.mPosition == POSITION_HEADER)
			{
				HeaderFillerView v = GetHeaderFillerView(adapterPosition.mHeader, convertView, parent);
				View view = mDelegate.GetHeaderView(adapterPosition.mHeader, (View)v.Tag, parent);
				mGridView.DetachHeader((View) v.Tag);
				v.Tag = view;
				mGridView.AttachHeader(view);
				convertView = v;
				mLastHeaderViewSeen = v;
				v.ForceLayout();
			}
			else if (adapterPosition.mPosition == POSITION_HEADER_FILLER)
			{
				convertView = GetFillerView(convertView, parent, mLastHeaderViewSeen);
				convertView.ForceLayout();
			}
			else if (adapterPosition.mPosition == POSITION_FILLER)
			{
				convertView = GetFillerView(convertView, parent, mLastViewSeen);
			}
			else
			{
				convertView = mDelegate.GetView(adapterPosition.mPosition, convertView, parent);
				mLastViewSeen = convertView;
			}

			return convertView;
		}
		private HeaderFillerView GetHeaderFillerView(int headerPosition, View convertView, ViewGroup parent)
		{
			HeaderFillerView headerFillerView = (HeaderFillerView)convertView;
			if (headerFillerView == null)
			{
				headerFillerView = new HeaderFillerView(this, mContext);
			}

			return headerFillerView;
		}