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 }
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); } }