Xamarin.forms 如何在iOS的Xamarin表单中禁用滚动视图上的弹跳?

Xamarin.forms 如何在iOS的Xamarin表单中禁用滚动视图上的弹跳?,xamarin.forms,Xamarin.forms,我在Xamarin窗体中使用ScrollView,在iOS上,当您点击顶部或底部时,ScrollView会反弹(通常反弹得太远)。我的理解是这是默认的iOS行为?有什么方法可以禁用此功能,以便在滚动时不会出现反弹?是的,可以禁用反弹效果。但您需要创建一个新的 在特定情况下,必须将其用作自定义渲染器的基类。然后,在自定义渲染器中,只需设置为false 可以找到自定义渲染器的示例。您的结果应该如下所示: PCL: public class CustomScrollView : ScrollView

我在Xamarin窗体中使用ScrollView,在iOS上,当您点击顶部或底部时,ScrollView会反弹(通常反弹得太远)。我的理解是这是默认的iOS行为?有什么方法可以禁用此功能,以便在滚动时不会出现反弹?

是的,可以禁用反弹效果。但您需要创建一个新的

在特定情况下,必须将其用作自定义渲染器的基类。然后,在自定义渲染器中,只需设置为
false

可以找到自定义渲染器的示例。您的结果应该如下所示:

PCL:

public class CustomScrollView : ScrollView
{
    public CustomScrollView() {}
}
[assembly: ExportRenderer(typeof(CustomScrollView), typeof(CustomScrollViewRenderer))]
namespace Test.iOS
{
    public class CustomScrollViewRenderer : ScrollViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            Bounces = false;
        }
    }
}
iOS:

public class CustomScrollView : ScrollView
{
    public CustomScrollView() {}
}
[assembly: ExportRenderer(typeof(CustomScrollView), typeof(CustomScrollViewRenderer))]
namespace Test.iOS
{
    public class CustomScrollViewRenderer : ScrollViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            Bounces = false;
        }
    }
}

在Android上,您还需要实现一个不做任何事情的自定义渲染器。

@Demitrian不需要一个不做任何事情的自定义渲染器。默认设置就足够了。