Xamarin.Forms中RefreshView内ListView在iOS设备滚动异常
RefreshView嵌套的ListView在iOS上无法正常滚动(无法滚动到末尾,松手后跳回顶部)
问题描述
嵌套在RefreshView内的ListView在iOS设备上无法触发正常滚动功能。加载大量数据后,无法滚动查看全部列表项,尤其是末尾项;尝试滚动时仅能移动一小段距离,松开手指后列表会直接跳回顶部。该问题在最新版Xamarin.Forms的iOS设备上出现,测试多个旧版本及真机均存在此问题。有视频演示该滚动异常的具体表现。
复现步骤
- 使用Xamarin.Forms创建应用
- 在
RefreshView内添加ListView,并加载足够多的列表项(需滚动才能查看全部) - 在iOS设备/模拟器运行应用
- 尝试滚动
ListView
相关代码
XAML布局代码
<RefreshView x:Name="MyRefreashView" Refreshing="RefreashView_Refreashing"> <ListView x:Name="ListView1" BackgroundColor="Transparent" HasUnevenRows="False" SeparatorVisibility="None" ItemAppearing="ItemAppearingFunction" > </ListView> </RefreshView>
数据加载代码
private async Task LoadingData() { await Task.Run(() => { ResposeData = Run_Async_GETALL(NumberOfRecords).Result; }); _ListModel = JsonConvert.DeserializeObject<List<Model>>(ResposeData) as List<Model>; Device.BeginInvokeOnMainThread(() => { ListView1.ItemsSource = _ListModel; }); }
预期行为
iOS设备上的ListView可正常滚动,能查看全部列表项,滚动后不会跳回顶部。
实际行为
ListView无法正常滚动,仅能滚动小段距离,松开手指后跳回列表顶部,无法查看全部项。
内容的提问来源于stack exchange,提问作者Khalid Osama
相关产品推荐
相关产品推荐

