c# - GestureRecognizer 不适用于 ios xamarin.forms

标签 c# xamarin mobile layout xamarin.forms

我正在使用 xamarin.forms 做一个应用程序,但是, 出于某种原因,在我更改此页面后,我将图像变大并添加了一些网格,gesturerecognizer 仅在 iphone 中停止工作,在 android 中它正常工作...有人看到此代码中的问题吗?因为,到目前为止,我做不到。 由于需要模板,我正在以编程方式创建页面。

private void CriaTela()
    {
        int row = 0;
        int column = 0;

        gridtextura.RowSpacing = 5;
        gridtextura.ColumnSpacing = 15;

        lstCategorias = lstCategorias.OrderBy(o => o.nome).ToList();

        foreach (var item in lstCategorias)
        {
            Grid GridContent = new Grid
            {
                RowSpacing = 0,
                //BackgroundColor = Color.Pink,
                VerticalOptions = LayoutOptions.FillAndExpand,
                RowDefinitions =
            {
                new RowDefinition { Height = new GridLength(8, GridUnitType.Star) },
                new RowDefinition { Height = new GridLength(2, GridUnitType.Star) }
            }
            };

            var textura = new CachedImage();
            textura.Source = "texturaCateg";
            textura.HorizontalOptions = LayoutOptions.FillAndExpand;
            textura.VerticalOptions = LayoutOptions.FillAndExpand;
            textura.Aspect = Aspect.Fill;

            GridContent.BindingContext = item;

            Grid boxColorView = new Grid
            {
                RowSpacing = 0,
              //  BackgroundColor = Color.Pink,
                VerticalOptions = LayoutOptions.FillAndExpand,
                RowDefinitions =
            {
                new RowDefinition { Height = new GridLength(2, GridUnitType.Star) },
                new RowDefinition { Height = new GridLength(8, GridUnitType.Star) }
            }
            };

            boxColorView.Children.Add(new BoxView { Color = Color.FromHex(item.corFundo), VerticalOptions = LayoutOptions.FillAndExpand }, 0, 1 );
            boxColorView.Children.Add(textura, 0, 1);

            boxColorView.Children.Add(new BoxView { VerticalOptions = LayoutOptions.FillAndExpand }, 0, 0);
            gridtextura.Children.Add(boxColorView, column, row);
            gridtextura.Children.Add(GridContent, column, row);

            //Qual categoria foi escolhida?
            var CliqueCategoria = new TapGestureRecognizer();

            CliqueCategoria.Tapped += (s, e) =>
            {
                CriaLoading();
                var stacklayout = s as Grid;
                categoriaEscolhida = (Categorias)stacklayout.BindingContext;
                ChamaProdutos();
            };

            GridContent.GestureRecognizers.Add(CliqueCategoria);
            GridContent.BackgroundColor = Color.Green;
            if (item.imagem != null && item.imagem != "")
            {
                int initIndex = item.imagem.IndexOf(',');
                string image = "";

                image = item.imagem.Substring(initIndex + 1);

                try
                {
                    GridContent.Children.Add(new CachedImage { Source = ImageSource.FromStream(() => new MemoryStream(Convert.FromBase64String(image))), VerticalOptions = LayoutOptions.FillAndExpand }, 0, 0);
                }
                catch (Exception e)
                {
                    GridContent.Children.Add(new CachedImage { Source = "error.png", VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Fill, HeightRequest = 50, WidthRequest = 50 }, 0, 0);

                }
            }

            GridContent.Children.Add(new Label { Text = item.nome, TextColor = Color.FromHex(item.corTexto), FontSize = Device.GetNamedSize(NamedSize.Micro, typeof(Label)), FontAttributes = FontAttributes.Bold, HorizontalTextAlignment = TextAlignment.Center, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.CenterAndExpand }, 0, 1 );

            if (column == 0)
            {
                column = 1;
            }
            else
            {
                column = 0;
                row++;
            }

        }

    }

----------------编辑--------------------

我对这个问题了解得更多一些......因为现在我有一个按钮图像......它正在工作......但现在,它在其他图像上然后它不再起作用...... .但它在另一张图片上......这与我在这里发布的这段代码的情况相同......我在其他上面有一个网格......在相同的位置和宽度和长度......并且顶部网格没有收到水龙头

最佳答案

问题出在 xaml 中...主网格在其他网格中...其他网格造成了问题...我想可能是点击次数多了

关于c# - GestureRecognizer 不适用于 ios xamarin.forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46385628/

相关文章:

c# - 在 .NET Core 控制台应用程序中针对 EF Core DbContext 服务错误建立依赖注入(inject)

mobile - 在电信领域工作的程序员要关注的博客(尤其是移动/智能手机)

java - 启用/禁用数据问题 -java.lang.NoSuchMethodException

c# - Closure 的 R 实现不同于其他函数式语言,这使得它表现得像 C# 等命令式语言?

c# - Unity 测试运行程序中未调用安装/拆卸且测试被阻止

c# - 消息 AOT 问题 Attempting to JIT compile method with Pinvoke on Xamarin iOS

c# - 解码 JSON Web token (Xamarin.Android)

css - 移动网站的嵌入式 CSS 模板?

c# - 类型推断变量

c# - 通过单击自定义 UICollectionViewCell 中的按钮来执行 segue