我正在使用随Xamarin表格(2.5.0)附带的Carousel页面,并希望能够检测到页面即将发生变化。
每个页面都有一些验证,如果失败,我想阻止用户移动到下一页。目前我能看到的唯一事件是PageChanged,这是我触发验证的地方,但是用户必须向后滑动以查看错误消息。
有没有办法挂钩本机滑动事件?
该应用目前正在以iOS为目标,但最终需要支持Android。
答案 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,它在刷过的第一个百分比时已被触发,因此你可以在那里做你的行动。