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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
            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());
            }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        /// <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;
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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();
        }
Esempio n. 11
0
        /// <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;
        }
Esempio n. 12
0
        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());
            }
Esempio n. 15
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            View result = _wrappedAdapter.GetView(position, convertView, parent);

            return(result);
        }
Esempio n. 16
0
            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);
            }