public void AddFooterView(View v, Object data, bool isSelectable) { IListAdapter mAdapter = Adapter; if (mAdapter != null && !(mAdapter is HeaderViewGridAdapter)) { throw new Java.Lang.IllegalStateException( "Cannot add header view to grid -- setAdapter has already been called."); } ViewGroup.LayoutParams lyp = v.LayoutParameters; FixedViewInfo info = new FixedViewInfo(); FrameLayout fl = new FullWidthFixedViewLayout(Context,this); if (lyp != null) { v.LayoutParameters=new FrameLayout.LayoutParams(lyp.Width, lyp.Height); fl.LayoutParameters=new AbsListView.LayoutParams(lyp.Width, lyp.Height); } fl.AddView(v); info.view = v; info.viewContainer = fl; info.data = data; info.isSelectable = isSelectable; _footerViewInfos.Add(info); if (mAdapter != null) { ((HeaderViewGridAdapter) mAdapter).notifyDataSetChanged(); } }
public void AddFooterView(View v, Java.Lang.Object data, bool isSelectable) { IListAdapter adapter = (IListAdapter)Adapter; if (adapter != null && !(adapter is HeaderFooterViewGridAdapter)) { throw new IllegalStateException("Cannot add footer view to grid -- setAdapter has already been called."); } FixedViewInfo info = new FixedViewInfo(); FrameLayout fl = new FullWidthFixedViewLayout(this, Context); fl.AddView(v); info.view = v; info.viewContainer = fl; info.data = data; info.isSelectable = isSelectable; mFooterViewInfos.Add(info); // in the case of re-adding a header view, or adding one later on, // we need to notify the observer if (adapter != null) { ((HeaderFooterViewGridAdapter)adapter).notifyDataSetChanged(); } }
/** * Add a fixed view to appear at the top of the grid. If addHeaderView 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: Call this before calling setAdapter. This is so HeaderGridView can wrap * the supplied cursor with one that will also account for header views. * * @param v The view to add. * @param data Data to associate with this view * @param isSelectable whether the item is selectable */ public void AddHeaderView(View v, Object data, bool isSelectable) { IListAdapter adapter = Adapter; if (adapter != null && !(adapter is HeaderViewGridAdapter)) { throw new Java.Lang.IllegalStateException( "Cannot add header view to grid -- setAdapter has already been called."); } ViewGroup.LayoutParams lyp = v.LayoutParameters; FixedViewInfo info = new FixedViewInfo(); FrameLayout fl = new FullWidthFixedViewLayout(Context,this); if (lyp == null) { lyp = new ViewGroup.LayoutParams (WindowManagerLayoutParams.MatchParent,WindowManagerLayoutParams.MatchParent); } if (lyp != null) { v.LayoutParameters=new FrameLayout.LayoutParams(lyp.Width, lyp.Height); fl.LayoutParameters=new AbsListView.LayoutParams(lyp.Width, lyp.Height); } fl.AddView(v); info.view = v; info.viewContainer = fl; info.data = data; info.isSelectable = isSelectable; _headerViewInfos.Add(info); // in the case of re-adding a header view, or adding one later on, // we need to notify the observer if (adapter != null) { ((HeaderViewGridAdapter) adapter).notifyDataSetChanged(); } }
public void AddHeaderView(View v, Object data, bool isSelectable) { IListAdapter adapter = Adapter; if (adapter != null && !(adapter is HeaderViewGridAdapter)) { throw new IllegalStateException("Cannot add header view to grid -- setAdapter has already been called."); } FixedViewInfo info = new FixedViewInfo(); FrameLayout fl = new FullWidthFixedViewLayout(this, Context); fl.AddView(v); info.View = v; info.ViewContainer = fl; info.Data = data; info.IsSelectable = isSelectable; _mHeaderViewInfos.Add(info); // in the case of re-adding a header view, or adding one later on, // we need to notify the observer if (adapter != null) { ((HeaderViewGridAdapter)adapter).NotifyDataSetChanged(); } }