PagingGridViewProject/PagingGridView/src/main/java/com/paging/gridview/HeaderGridView.java
public void addHeaderView(View v, Object data, boolean isSelectable) {
		final FixedViewInfo info = new FixedViewInfo();
		FrameLayout fl = new FullWidthFixedViewLayout(getContext());
		fl.addView(v);
		info.view = v;
		info.viewContainer = fl;
		info.data = data;
		info.isSelectable = isSelectable;
		mHeaderViewInfos.add(info);

		// Wrap the adapter if it wasn't already wrapped.
		if (mAdapter != null) {
			if (!(mAdapter instanceof FooterViewGridAdapter)) {
				mAdapter = new FooterViewGridAdapter(mHeaderViewInfos, mFooterViewInfos, mAdapter);
			}

			// Do not know if this really helps
			notifiyChanged();
		}
	}
public void addHeaderView(View v, Object data, boolean isSelectable) {
		final FixedViewInfo info = new FixedViewInfo();
		FrameLayout fl = new FullWidthFixedViewLayout(getContext());
		fl.addView(v);
		info.view = v;
		info.viewContainer = fl;
		info.data = data;
		info.isSelectable = isSelectable;
		mHeaderViewInfos.add(info);

		// Wrap the adapter if it wasn't already wrapped.
		if (mAdapter != null) {
			if (!(mAdapter instanceof FooterViewGridAdapter)) {
				mAdapter = new FooterViewGridAdapter(mHeaderViewInfos, mFooterViewInfos, mAdapter);
			}

			// Do not know if this really helps
			notifiyChanged();
		}
	}
public void addHeaderView ( View v , Object data , boolean isSelectable ) { final FixedViewInfo info = new FixedViewInfo ( ) ; FrameLayout fl = new FullWidthFixedViewLayout ( getContext ( ) ) ; fl . addView ( v ) ; info . view = v ; info . viewContainer = fl ; info . data = data ; info . isSelectable = isSelectable ; mHeaderViewInfos . add ( info ) ; // Wrap the adapter if it wasn't already wrapped. if ( mAdapter != null ) { if ( ! ( mAdapter instanceof FooterViewGridAdapter ) ) { mAdapter = new FooterViewGridAdapter ( mHeaderViewInfos , mFooterViewInfos , mAdapter ) ; } // Do not know if this really helps notifiyChanged ( ) ; } }
Add a fixed view to appear at the top of the list. If this method is
called more than once, the views will appear in the order they were
added. Views added using this call can take focus if they want.
<p>
Note: When first introduced, this method could only be called before
setting the adapter with {@link #setAdapter(ListAdapter)}. Starting with
{@link android.os.Build.VERSION_CODES#KITKAT}, this method may be
called at any time. If the ListView's adapter does not extend
{@link FooterViewGridAdapter}, it will be wrapped with a supporting
instance of {@link android.widget.WrapperListAdapter}.

@param v The view to add.
@param data Data to associate with this view
@param isSelectable whether the item is selectable
Add a fixed view to appear at the top of the list . If this method is called more than once the views will appear in the order they were added . Views added using this call can take focus if they want . <p > Note : When first introduced this method could only be called before setting the adapter with { @link #setAdapter ( ListAdapter ) } . Starting with { @link android . os . Build . VERSION_CODES#KITKAT } this method may be called at any time . If the ListView s adapter does not extend { @link FooterViewGridAdapter } it will be wrapped with a supporting instance of { @link android . widget . WrapperListAdapter } .