public override View GetView(int position, View convertView, ViewGroup parent) { SwipeMenuLayout layout = null; if (convertView == null) { View contentView = mAdapter.GetView(position, convertView, parent); SwipeMenu menu = new SwipeMenu(mContext); menu.ViewType = mAdapter.GetItemViewType(position); CreateMenu(menu); Cooksts.Droid.SWipeMenuList.SwipeListView listview = (Cooksts.Droid.SWipeMenuList.SwipeListView)parent; SwipeMenuView menuView = new SwipeMenuView(menu, listview); menuView.ItemClickListener = this; layout = new SwipeMenuLayout(contentView, menuView, listview.CloseInterpolator, listview.OpenInterpolator); layout.Position = position; } else { layout = (SwipeMenuLayout)convertView; layout.CloseMenu(); layout.Position = position; View view = mAdapter.GetView(position, layout.ContentView, parent); } return(layout); }
public View GetView(int position, View convertView, ViewGroup parent) { SwipeMenuLayout layout = null; if (convertView == null) { View contentView = mAdapter.GetView(position, convertView, parent); SwipeMenu menu = new SwipeMenu(mContext); menu.SetViewType(GetItemViewType(position)); CreateMenu(menu); SwipeMenuView menuView = new SwipeMenuView(menu, (SwipeMenuListView)parent) { SwipeItemClickListener = this }; SwipeMenuListView listView = (SwipeMenuListView)parent; layout = new SwipeMenuLayout(contentView, menuView, listView.CloseInterpolator, listView.OpenInterpolator); layout.SetPosition(position); } else { layout = (SwipeMenuLayout)convertView; layout.CloseMenu(); layout.SetPosition(position); View view = mAdapter.GetView(position, layout.ContentView, parent); } if (mAdapter is BaseSwipListAdapter) { bool swipEnable = (((BaseSwipListAdapter)mAdapter).getSwipEnableByPosition(position)); layout.SwipEnable = swipEnable; } return(layout); }
public void setGridViewHeightBasedOnChildren(GridView gridView, int columns) { IListAdapter listAdapter = gridView.Adapter; if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; int items = listAdapter.Count; int rows = 0; View listItem = listAdapter.GetView(0, null, gridView); listItem.Measure(0, 0); totalHeight = listItem.MeasuredHeight; float x = 1; if (items > columns) { x = items / columns; rows = (int)(x + 1); totalHeight *= rows; } ViewGroup.LayoutParams parameters = gridView.LayoutParameters; parameters.Height = totalHeight; gridView.LayoutParameters = parameters; }
public View GetView(int position, View convertView, ViewGroup parent) { int numHeadersAndPlaceholders = HeadersCount * mNumColumns; if (position < numHeadersAndPlaceholders) { View headerViewContainer = mHeaderViewInfos[position / mNumColumns].viewContainer; if (position % mNumColumns == 0) { return(headerViewContainer); } else { if (convertView == null) { convertView = new View(parent.Context); } convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(headerViewContainer.Height); return(convertView); } } int adjPosition = position - numHeadersAndPlaceholders; int adapterCount = 0; if (mAdapter != null) { adapterCount = mAdapter.Count; if (adjPosition < adapterCount) { return(mAdapter.GetView(adjPosition, convertView, parent)); } } throw new System.IndexOutOfRangeException(position.ToString()); }
public static void setListViewHeightBasedOnChildren(ListView listView) { IListAdapter listAdapter = listView.Adapter; if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; int desiredWidth = View.MeasureSpec.MakeMeasureSpec(listView.Width, View.MeasureSpec.AT_MOST); for (int i = 0; i < listAdapter.GetCount(); i++) { View listItem = listAdapter.GetView(i, null, listView); listItem.Measure(1000, 0); totalHeight += listItem.MeasuredHeight; } ViewGroup.LayoutParams parameters = listView.GetLayoutParams(); parameters.Height = totalHeight + (listView.DividerHeight * (listAdapter.GetCount() - 1)) + 10; listView.SetLayoutParams(parameters); listView.RequestLayout(); }
/// <summary> /// Helper method for explicitly making a list view height be based on the height of it's children /// This is required when a list view is contained within a scroll view and would other wise only show a single item /// </summary> /// <param name="listView"></param> public static void SetListViewHeightBasedOnChildren(ListView listView) { IListAdapter listAdapter = listView.Adapter; if (listAdapter == null) { return; } int desiredWidth = View.MeasureSpec.MakeMeasureSpec(listView.Width, MeasureSpecMode.Unspecified); int totalHeight = 0; View view = null; for (int i = 0; i < listAdapter.Count; i++) { view = listAdapter.GetView(i, view, listView); if (i == 0) { view.LayoutParameters = new ViewGroup.LayoutParams(desiredWidth, 0); } view.Measure(desiredWidth, 0); totalHeight += view.MeasuredHeight; } ViewGroup.LayoutParams layoutParams = listView.LayoutParameters; layoutParams.Height = totalHeight + (listView.DividerHeight * (listAdapter.Count - 1)); listView.LayoutParameters = layoutParams; listView.RequestLayout(); }
public View GetView(int position, View convertView, ViewGroup parent) { // Header (negative positions will throw an ArrayIndexOutOfBoundsException) int numHeaders = HeadersCount; if (position < numHeaders) { return(mHeaderViewInfos[position].view); } // Adapter int adjPosition = position - numHeaders; int adapterCount = 0; if (mAdapter != null) { adapterCount = mAdapter.Count; if (adjPosition < adapterCount) { return(mAdapter.GetView(adjPosition, convertView, parent)); } } // Footer (off-limits positions will throw an ArrayIndexOutOfBoundsException) return(mFooterViewInfos[adjPosition - adapterCount].view); }
public void GetTotalHeightofListView(ListView listView) { IListAdapter listAdapter = listView.Adapter; int totalHeight = 0; for (int i = 0; i < listAdapter.Count; i++) { View mView = listAdapter.GetView(i, null, listView); mView.Measure(0, 0); totalHeight += mView.MeasuredHeight; } int test = totalHeight + (listView.DividerHeight * (listAdapter.Count - 1)); listView.LayoutParameters.Height = test; }
public static void setDynamicHeight(ListView mListView) { IListAdapter mListAdapter = mListView.Adapter; if (mListAdapter == null) { return; } int height = 0; int desiredWidth = View.MeasureSpec.MakeMeasureSpec(mListView.Width, MeasureSpecMode.Unspecified); for (int i = 0; i < mListAdapter.Count; i++) { View listItem = mListAdapter.GetView(i, null, mListView); listItem.Measure(desiredWidth, System.Convert.ToInt32(MeasureSpecMode.Unspecified)); height += listItem.MeasuredHeight; } ViewGroup.LayoutParams p = mListView.LayoutParameters; p.Height = height + (mListView.DividerHeight * (mListAdapter.Count - 1)); mListView.LayoutParameters = p; mListView.RequestLayout(); }
public static void DisableScrolling(this ListView listView) { IListAdapter adapter = listView.Adapter; if (adapter == null) { return; } ViewGroup vg = listView; int totalHeight = 0; for (int i = 0; i < adapter.Count; i++) { View listItem = adapter.GetView(i, null, vg); listItem.Measure(0, 0); totalHeight += listItem.MeasuredHeight; } ViewGroup.LayoutParams par = listView.LayoutParameters; par.Height = totalHeight + (listView.DividerHeight * (adapter.Count - 1)); listView.LayoutParameters = par; listView.RequestLayout(); }
/// <summary> /// Sets the list view with a specific size, by doing so it can go inside scrollviews with no problems /// and since the overall size is set the listview scroll wont be enable. /// </summary> /// <param name="myListView"></param> public static void SetListViewSize(ListView myListView) { IListAdapter myListAdapter = myListView.Adapter; if (myListAdapter == null) { //do nothing return null return; } //set listAdapter in loop for getting final size int totalHeight = 0; for (int size = 0; size < myListAdapter.Count; size++) { var listItem = myListAdapter.GetView(size, null, myListView); listItem.Measure(0, 0); totalHeight += listItem.MeasuredHeight; } //setting listview item in adapter ViewGroup.LayoutParams @params = myListView.LayoutParameters; @params.Height = totalHeight + (myListView.DividerHeight * (myListAdapter.Count - 1)); myListView.LayoutParameters = @params; }
private void GetListViewSize(ListView myListView) { IListAdapter myListAdapter = myListView.Adapter; if (myListAdapter == null) { //do nothing return null return; } //set listAdapter in loop for getting final size int totalHeight = 0; for (int size = 0; size < myListAdapter.Count; size++) { View listItem = myListAdapter.GetView(size, null, myListView); listItem.Measure(0, 0); totalHeight += listItem.MeasuredHeight; } //setting listview item in adapter //ViewGroup.LayoutParams params = myListView.getLayoutParams(); ViewGroup.LayoutParams params2 = myListView.LayoutParameters; params2.Height = totalHeight + (myListView.DividerHeight * (myListAdapter.Count) - 1); myListView.LayoutParameters = params2; }
View IAdapter.GetView (int position, View convertView, ViewGroup parent) { if (_debug) { Log.Debug(_logTag, String.Format("getView: %s, reused: %s", position, convertView == null)); } // Header (negative positions will throw an ArrayIndexOutOfBoundsException) int numHeadersAndPlaceholders = getHeadersCount() * _numColumns; if (position < numHeadersAndPlaceholders) { View headerViewContainer = _headerViewInfos .ElementAt(position / _numColumns).viewContainer; if (position % _numColumns == 0) { return headerViewContainer; } else { if (convertView == null) { convertView = new View(parent.Context); } // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility=ViewStates.Invisible; convertView.SetMinimumHeight(headerViewContainer.Height); return convertView; } } // Adapter int adjPosition = position - numHeadersAndPlaceholders; int adapterCount = 0; if (mAdapter != null) { adapterCount = getAdapterAndPlaceHolderCount(); if (adjPosition < adapterCount) { if (adjPosition < mAdapter.Count) { View view = mAdapter.GetView(adjPosition, convertView, parent); return view; } else { if (convertView == null) { convertView = new View(parent.Context); } convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(_rowHeight); return convertView; } } } // Footer int footerPosition = adjPosition - adapterCount; if (footerPosition < obj.Count) { View footViewContainer = _footerViewInfos .ElementAt(footerPosition / _numColumns).viewContainer; if (position % _numColumns == 0) { return footViewContainer; } else { if (convertView == null) { convertView = new View(parent.Context); } // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(footViewContainer.Height); return convertView; } } throw new Java.Lang.ArrayIndexOutOfBoundsException(position); }
public View GetView(int position, View convertView, ViewGroup parent) { // Header (negative positions will throw an ArrayIndexOutOfBoundsException) int numHeadersAndPlaceholders = HeadersCount * mNumColumns; if (position < numHeadersAndPlaceholders) { View headerViewContainer = mHeaderViewInfos[position / mNumColumns].viewContainer; if (position % mNumColumns == 0) { return headerViewContainer; } else { convertView = new View(parent.Context); // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(headerViewContainer.Height); return convertView; } } // Adapter if (position < numHeadersAndPlaceholders + mAdapter.Count) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int adjPosition = position - numHeadersAndPlaceholders; int adjPosition = position - numHeadersAndPlaceholders; int adapterCount = 0; if (mAdapter != null) { adapterCount = mAdapter.Count; if (adjPosition < adapterCount) { return mAdapter.GetView(adjPosition, convertView, parent); } } } // Empty item //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int lastRowItemCount = (mAdapter.getCount() % mNumColumns); int lastRowItemCount = (mAdapter.Count % mNumColumns); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int emptyItemCount = ((lastRowItemCount == 0) ? 0 : mNumColumns - lastRowItemCount); int emptyItemCount = ((lastRowItemCount == 0) ? 0 : mNumColumns - lastRowItemCount); if (position < numHeadersAndPlaceholders + mAdapter.Count + emptyItemCount) { // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. // TODO Current implementation may not be enough in the case of 3 or more column. May need to be careful on the INVISIBLE View height. convertView = mAdapter.GetView(mAdapter.Count - 1, convertView, parent); convertView.Visibility = ViewStates.Invisible; return convertView; } // Footer int numFootersAndPlaceholders = FootersCount * mNumColumns; if (position < numHeadersAndPlaceholders + mAdapter.Count + emptyItemCount + numFootersAndPlaceholders) { View footerViewContainer = mFooterViewInfos[(position - numHeadersAndPlaceholders - mAdapter.Count - emptyItemCount) / mNumColumns].viewContainer; if (position % mNumColumns == 0) { return footerViewContainer; } else { convertView = new View(parent.Context); // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(footerViewContainer.Height); return convertView; } } throw new System.IndexOutOfRangeException(position.ToString()); }
public override View GetView(int position, View convertView, ViewGroup parent) { View result = _wrappedAdapter.GetView(position, convertView, parent); return(result); }
public View GetView(int position, View convertView, ViewGroup parent) { // Header (negative positions will throw an ArrayIndexOutOfBoundsException) int numHeadersAndPlaceholders = GetHeadersCount() * _numColumns; if (position < numHeadersAndPlaceholders) { View headerViewContainer = _headerViewInfos[position / _numColumns].ViewContainer; if (position % _numColumns == 0) { return(headerViewContainer); } if (convertView == null) { convertView = new View(parent.Context); } // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(headerViewContainer.Height); return(convertView); } // Adapter int adjPosition = position - numHeadersAndPlaceholders; int adapterCount = 0; if (_adapter != null) { adapterCount = GetAdapterAndPlaceHolderCount(); if (adjPosition < adapterCount) { if (adjPosition < _adapter.Count) { return(_adapter.GetView(adjPosition, convertView, parent)); } if (convertView == null) { convertView = new View(parent.Context); } convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(_rowHeight); return(convertView); } } // Footer int footerPosition = adjPosition - adapterCount; if (footerPosition < Count) { View footViewContainer = _footerViewInfos[footerPosition / _numColumns].ViewContainer; if (position % _numColumns == 0) { return(footViewContainer); } if (convertView == null) { convertView = new View(parent.Context); } // We need to do this because GridView uses the height of the last item // in a row to determine the height for the entire row. convertView.Visibility = ViewStates.Invisible; convertView.SetMinimumHeight(footViewContainer.Height); return(convertView); } throw new ArrayIndexOutOfBoundsException(position); }