检测在Xamarin.Forms.Scrollview中结束的滚动
我正试图定制一个滚动视图,以满足我的特定需求,以及当用户停止滚动或以其他方式将手指从屏幕上移开时,我想做什么。我已经尝试了几种附加事件监听器的方法,但还没有找到一种能够触发任何事件的方法 我需要在android和iOS上完成这项工作,我很乐意在跨平台或特定平台的代码中完成这项工作 如果有人能提供任何指导,我将不胜感激检测在Xamarin.Forms.Scrollview中结束的滚动,xamarin.forms,Xamarin.forms,我正试图定制一个滚动视图,以满足我的特定需求,以及当用户停止滚动或以其他方式将手指从屏幕上移开时,我想做什么。我已经尝试了几种附加事件监听器的方法,但还没有找到一种能够触发任何事件的方法 我需要在android和iOS上完成这项工作,我很乐意在跨平台或特定平台的代码中完成这项工作 如果有人能提供任何指导,我将不胜感激 作为一个小提示,如果有人能解释为什么在我的自定义scrollview渲染器中,执行Touch+=MyTouchHandler不允许调用我的触摸处理程序,那将非常有帮助。您可以通过实
作为一个小提示,如果有人能解释为什么在我的自定义scrollview渲染器中,执行
Touch+=MyTouchHandler
不允许调用我的触摸处理程序,那将非常有帮助。您可以通过实现此事件处理程序来检测它:
假设列表名为Items,则需要将以下代码添加到page.xaml.cs文件中:
var listview = new ListView ();
listview.ItemsSource = Items;
listview.ItemAppearing += (sender, e) =>
{
if(isLoading || Items.Count == 0)
return;
//hit bottom!
if(e.Item.ToString() == Items[Items.Count - 1])
{
LoadItems();
}
}
您可以在此处查看完整的实现详细信息:var scrollView=new scrollView();
scrollView.scrolled+=OnScrolled
已滚动的私有void(对象发送者、滚动目标)
{
MyScrollView scrollView=发送方作为MyScrollView;
double scrollingSpace=scrollView.ContentSize.Height-scrollView.Height;
如果(滚动空间)
var scrollView = new ScrollView ();
scrollView.scrolled+=OnScrolled
private void OnScrolled(object sender, ScrolledEventArgs e)
{
MyScrollView scrollView = sender as MyScrollView;
double scrollingSpace = scrollView.ContentSize.Height - scrollView.Height;
if (scrollingSpace <= e.ScrollY) // Touched bottom
// Do the things you want to do
}