You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 16:22:52