コード例 #1
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var wrapperView = (convertView == null) ? new WrapperView(m_Context) : convertView as WrapperView;

            if (wrapperView == null)
            {
                throw new NullReferenceException("Wrapper view can not be null");
            }

            var  item   = Delegate.GetView(position, wrapperView.Item, wrapperView);
            View header = null;

            if (PreviousPositionHasSameHeader(position))
            {
                RecycleHeaderIfExists(wrapperView);
            }
            else
            {
                header = ConfigureHeader(wrapperView, position);
            }

            if ((item is ICheckable) && !(wrapperView is CheckableWrapperView))
            {
                //Need to create Checkable subclass of WrapperView for listview to work correctly
                wrapperView = new CheckableWrapperView(m_Context);
            }
            else if (!(item is ICheckable) && (wrapperView is CheckableWrapperView))
            {
                wrapperView = new WrapperView(m_Context);
            }

            wrapperView.Update(item, header, Divider, DividerHeight);
            return(wrapperView);
        }
コード例 #2
0
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var wrapperView = (convertView == null) ? new WrapperView(m_Context) : convertView as WrapperView;

            if(wrapperView == null)
                throw new NullReferenceException("Wrapper view can not be null");

            var item = Delegate.GetView(position, wrapperView.Item, wrapperView);
            View header = null;
            if (PreviousPositionHasSameHeader(position))
            {
                RecycleHeaderIfExists(wrapperView);
            }
            else
            {
                header = ConfigureHeader(wrapperView, position);
            }

            if ((item is ICheckable) && !(wrapperView is CheckableWrapperView))
            {
                //Need to create Checkable subclass of WrapperView for listview to work correctly
                wrapperView = new CheckableWrapperView(m_Context);
            }
            else if (!(item is ICheckable) && (wrapperView is CheckableWrapperView))
            {
                wrapperView = new WrapperView(m_Context);
            }

            wrapperView.Update(item, header, Divider, DividerHeight);
            return wrapperView;

        }