Xamarin表格:弹出时如何不重新加载listView



在Xamarin表单中,我有一个listView和以下方法:

    protected async override void OnAppearing()
    {
        base.OnAppearing();
        events.ItemsSource = await App.ServiceManager.GetStream();
    }

其中

events

是我的listView,并从REST Web服务中获取数据。

当我在ListView中选择一个项目时,请按详细信息页面。问题是,当我弹出listView时,将调用方法on papperawer()并再次进行远程调用。

相反

我认为您可以简单地使用

bool isFirstAppearing = true;
protected async override void OnAppearing()
{
    base.OnAppearing();
    if(isFirstAppearing) {
         isFirstAppearing = false;
         events.ItemsSource = await App.ServiceManager.GetStream();
    }
}

您可以按照已经加载了检查,就像Alessandro Caliaros的答案所建议的那样,如果您想获取新数据,但仍然可以在同一位置滚动,则可以进行检查,您可以添加代码在" on"中添加以将滚动位置设置为与以前相同的滚动位置:

var currentYPosition = _scrollView.ScrollY;
await _scrollView.ScrollToAsync(_scrollView.ScrollX, currentYPosition, true);

最新更新