刷新 CarouselView 项目后保持当前位置
Keep current position after refreshing CarouselView items
我正在使用 CarouselView 来显示某些页面。
集合是这样定义的。
public IList<View> Pages { get; } = new ObservableCollection<View>();
xaml 代码中的绑定如下所示。
<CarouselView x:Name="PageCarousel" ItemsSource="{Binding Source={x:Reference PagePanelView}, Path=Pages}" IndicatorView="PageCarouselIndicator" Loop="False" VerticalOptions="FillAndExpand" IsScrollAnimated="False">
用户可以通过按钮触发刷新。刷新逻辑只是调用 Pages.Clear() 并再次添加它们。为了保持当前位置,我使用 ScrollTo(int index).
不幸的是,这并没有像预期的那样工作,因为 CarouselView 在刷新后总是显示第一页。
Xamarin.Forms 版本为 5.0.0.2083.
谢谢。
使用 animate: true 而不是 false 调用 ScrollTo 似乎可以解决问题。
我正在使用 CarouselView 来显示某些页面。
集合是这样定义的。
public IList<View> Pages { get; } = new ObservableCollection<View>();
xaml 代码中的绑定如下所示。
<CarouselView x:Name="PageCarousel" ItemsSource="{Binding Source={x:Reference PagePanelView}, Path=Pages}" IndicatorView="PageCarouselIndicator" Loop="False" VerticalOptions="FillAndExpand" IsScrollAnimated="False">
用户可以通过按钮触发刷新。刷新逻辑只是调用 Pages.Clear() 并再次添加它们。为了保持当前位置,我使用 ScrollTo(int index).
不幸的是,这并没有像预期的那样工作,因为 CarouselView 在刷新后总是显示第一页。
Xamarin.Forms 版本为 5.0.0.2083.
谢谢。
使用 animate: true 而不是 false 调用 ScrollTo 似乎可以解决问题。