Xamarin.Forms Carousel页面滑动事件页面更改

时间:2018-01-24 15:17:08

标签: c# xamarin.forms carousel

我正在使用随Xamarin表格(2.5.0)附带的Carousel页面,并希望能够检测到页面即将发生变化。

每个页面都有一些验证,如果失败,我想阻止用户移动到下一页。目前我能看到的唯一事件是PageChanged,这是我触发验证的地方,但是用户必须向后滑动以查看错误消息。

有没有办法挂钩本机滑动事件?

该应用目前正在以iOS为目标,但最终需要支持Android。

1 个答案:

答案 0 :(得分:2)

我知道这有点晚了,但也许其他人也可能会问,所以这里有一个想法: 正如你所写,

protected override void OnCurrentPageChanged()    

您可以找到用户刷到下一页的时间。现在,如果您对上一页进行验证,则可以在出现

错误的情况下返回上一页
int index = Children.IndexOf(CurrentPage);
this.CurrentPage = this.Children[index-1];

这不会阻止用户离开页面(因为没有'OnSwipingStart'或其他),但用户将看到错误而无需手动返回。

如果您愿意使用与CarouselPage不同的控件: 有一个pull request可以获得CarouselView到本机Xamarin表单。它有一个Scrolled-Event,它在刷过的第一个百分比时已被触发,因此你可以在那里做你的行动。