我有一个移动应用程序,其中的Xamarin.Forms.ScrollView(以下称为ScrollView)中包含一些内容(Android.Graphics.Canvas,以下称为Canvas)。自然,这就产生了一个问题,即ScrollView和Canvas都在乎用户沿着Canvas上的屏幕运行手指(因为它在scrollview内部)
我希望Canvas能够赢得比赛,因此,当用户在画布上绘制形状时,它由我的渲染器的代码处理(它绘制路径等,当周围没有ScrollView时,此方法就可以工作)。显然,这与滚动条有关。
这是针对我们Xamarin应用程序的Android部分的。我在应用程序的图像显示功能中添加了Zoom。放大会使图像对于屏幕而言太大,这要求我们在屏幕周围放置滚动条,并暴露出此问题。
Xaml当前看起来大致像这样,但是可以根据需要进行修改
<ScrollView x:Name="MyScrollView" Orientation="Both">
<local:SketchPadView x:Name="MySketch" HeightRequest="5000"
WidthRequest="5000"/>
</ScrollView>
使内容(上面的Canvas或MySketch)大于ScrollView会导致ScrollView开始拦截触摸。由于用户手指的移动只是滚动ScrollView,因此无法在Canvas上绘制。
所以,分为2个部分。首先,我如何使ScrollView不在其中关注用户手势,而完全由所浏览内容自行决定。
第二部分,一旦ScrollView不再响应用户输入,如何使ScrollView滚动?我想使用4个按钮来控制它,指示它每次向左,向右,向上,向下滚动其高度/宽度的30%。我打算使用'scrollToAsync'方法,这看起来可行吗?
-感谢您的协助, 沃尔特