我在ListView is not scrolling with grouping问题上展示了一个简单的ListView
。
我的问题是,在UWP上,我需要在Windows Phone上插入await Task.Delay(1500)
,在Windows桌面上插入200ms
。
我没有给ListView
填充大量数据,所以我也想知道,当用户运行它时会发生什么,因为它们可能有很多数据。
但为什么我需要它,因为对我来说这似乎是一个错误的代码?
我在没有Task.Delay
的情况下获得的例外是Error HRESULT E_FAIL has been returned from a call to a COM component.
消息是
System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Platform.UWP.VisualElementRenderer`2.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Platform.UWP.VisualElementRenderer`2.MeasureOverride(Size availableSize)
at Windows.UI.Xaml.UIElement.Measure(Size availableSize)
at Xamarin.Forms.Plat
如何修复此错误/错误代码?
更新
如果我设置HasUnevenRows = false
它不会崩溃,但只会滚动到不正确的ViewCell
。但我需要使用HasUnevenRows = true
如果我设置HasUnevenRows = false
和RowHeight,则会出现同样的问题。
答案 0 :(得分:0)
我的问题与您的问题相似,其中Task.Delay()
使iOS上的滚动工作得以实现。原因是线程,其中滚动与其他“任务”不同步。从
Device.BeginInvokeOnMainThread(() =>
{
listView.ScrollTo(defaultItem, ScrollToPosition.Center, true);
});
到
listView.ScrollTo(defaultItem, ScrollToPosition.Center, true);
我不再需要Task.Delay()
了,现在可以滚动了。虽然我从来没有得到你的例外。