public VirtualizedGridLayout(ICellInfoManager info, IList <IList> cells, DataTemplate template)
        {
            var vv = new InfoMeasurerProxy(MeasureRow, MeasureColumn);

            vv.SetInfo(info);
            this.info     = vv;
            this.cells    = cells;
            this.template = template;
            rScanner      = new VTools(x => info.GetRowHeight(x, cells));
            cScanner      = new VTools(x => info.GetColumnmWidth(x, cells));
            Children.Add(new BoxView {
                WidthRequest = 0, HeightRequest = 0, BackgroundColor = Color.Transparent
            });                                                                                                     // forces onlayout to be called
        }
Example #2
0
        public double GetColumnmWidth(int col, IList <IList> src)
        {
            var bm = info.GetColumnmWidth(col, src);

            if (bm == -1) // measure
            {
                if (MeasureOverrideColumns.ContainsKey(col))
                {
                    return(MeasureOverrideColumns[col]);
                }
                else
                {
                    return(MeasureOverrideColumns[col] = MeasureColumn(col));
                }
            }
            else
            {
                return(bm);
            }
        }