У меня есть мобильное приложение, в котором есть некоторый контент (Android.Graphics.Canvas, далее Canvas) внутри Xamarin.Forms.ScrollView (далее ScrollView).Естественно, это создает проблему, когда ScrollView и Canvas заботятся о том, чтобы пользователь провел пальцем по экрану на Canvas (поскольку он находится внутри scrollview)
Я хочу, чтобы Canvas выиграл этот конкурспоэтому, когда пользователь рисует фигуры на холсте, он обрабатывается кодом моего рендерера (он рисует контуры и т. д., это работает, когда вокруг него нет ScrollView).Очевидно, это проблематично с полосой прокрутки.
Это для части Android нашего приложения Xamarin.Я добавляю Zoom к функции отображения изображений в приложении.Увеличение делает изображение слишком большим для экрана, что потребовало от нас размещения полосы прокрутки вокруг него и выявило эту проблему.
В настоящее время Xaml выглядит примерно так, но при необходимости может быть изменен
<ScrollView x:Name="MyScrollView" Orientation="Both">
<local:SketchPadView x:Name="MySketch" HeightRequest="5000"
WidthRequest="5000"/>
</ScrollView>
Увеличение содержимого (Canvas или MySketch выше) по сравнению с ScrollView приводит к тому, что ScrollView начинает перехватывать касания.На Canvas становится невозможным рисовать, поскольку движения пальца пользователя просто прокручивают ScrollView вокруг.
Итак, 2 части.Во-первых, как мне заставить ScrollView не обращать никакого внимания на жесты пользователей внутри него, и оставить их полностью на усмотрение контента, на который вы нажимаете.
Вторая часть, как мне получитьScrollView для прокрутки, как только он больше не реагирует на ввод пользователя?Я хочу использовать 4 кнопки для управления им, инструктируя прокрутку влево, вправо, вверх, вниз на 30% высоты / ширины каждый раз.Я собираюсь использовать метод scrollToAsync, кажется ли это возможным?
- Спасибо за вашу помощь, Уолтер