The desperation of sending it to SO + desperate coding attempts were key:
public override async void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); TableView.SetContentOffset(new CGPoint(0, -(TableView.RefreshControl.Frame.Size.Height + 20)), true); TableView.RefreshControl.BeginRefreshing(); await UpdateDataSourceAsync(); } private async Task UpdateDataSourceAsync() { var ccClient = DI.Instance.Get<IControlCenterRestClient>(); var controlCenters = await ccClient.GetAllAsync(); var source = new GenericViewSource<ControlCenter>(controlCenters, item => item.Name, ControlCenterSelected); TableView.Source = source; TableView.RefreshControl.EndRefreshing(); }
This change, in particular, made a difference:
-(TableView.RefreshControl.Frame.Size.Height + 20)
It turns out that while in other issues the problem was fixed by simply applying scrolling based on RefreshControl, it would catch fire in the animation, in my case I had to add an extra delta to create the animation.
Correction
this additional offset is apparently only required if the extended edges are set in the upper bars.
source share