首页 > 解决方案 > 我的 CarouselViewControl 在 ItemSource 中阻止捏合和平移手势

问题描述

我在 Xamarin.Forms 中使用了带有我的自定义视图的CarouselViewControl ( https://github.com/alexrainman/CarouselView )。我的自定义视图扩展了 Contentview 并添加了 Pinch & Pan Gesture Recgnizer。custom-view 的内容是表单中的图像控件。我想滑动、平移和缩放图片库。手势性能(捏合和缩放)很好。所以,我为滑动选项添加了 CarouselViewControl。但是,CarouselViewControl 阻止了我的自定义视图的手势我不知道为什么阻止了我的手势识别器。

我在构造函数中注册了识别器

类 Android_ZoomViewer : 内容视图

{

……

公共 Android_ZoomViewer() {

        PinchGestureRecognizer pinchGesture = new PinchGestureRecognizer();
        pinchGesture.PinchUpdated += PinchGesture_PinchUpdated;
        GestureRecognizers.Add(pinchGesture);

        var panGesture = new PanGestureRecognizer();
        panGesture.PanUpdated += OnPanUpdated;
        GestureRecognizers.Add(panGesture);


    }

}

在 CarouselPage.xaml.cs

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class CarouselPage : ContentPage
{

    public CarouselPage()
    {

           InitializeComponent();

var carousel = new CarouselViewControl();

            ObservableCollection<Android_ZoomViewer> list= new ObservableCollection<Android_ZoomViewer>();
            hymn.Add(new Android_ZoomViewer() { Content = new ImageView() });
            hymn.Add(new Android_ZoomViewer() { Content = new ImageView() });
            hymn.Add(new Android_ZoomViewer() { Content = new ImageView() });


            ((ImageView)hymn[0].Content).SetBinding(Image.SourceProperty,"img1");
            ((ImageView)hymn[1].Content).SetBinding(Image.SourceProperty, "img2");
            ((ImageView)hymn[2].Content).SetBinding(Image.SourceProperty, "img3");

            carousel.ItemsSource = list;

在 CarouselView 中,我的手势被阻止...

标签: xamarinxamarin.formscarouselgesture

解决方案


推荐阅读