我有这个ListView
:
<ListView
CachingStrategy="RecycleElement"
x:Name="ItemList"
HasUnevenRows="True"
BackgroundColor="Transparent"
SeparatorColor="{x:Static local:LmcColor.defaultFg}"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
IsVisible="False"
ItemSelected="ItemList_ItemSelected"/>
它的ItemTemplate
初始化如下:
ItemList.ItemTemplate = new DataTemplate(() =>
new ViewCell() { View = new ItemReadView() });
ItemReadView
是一个ContentView
,其中包含一个StackView
,其中一个Image
被称为ItemImage
。我为此Image
定义了手势识别器:
TapGestureRecognizer handler = new TapGestureRecognizer();
handler.Tapped += ((object sender, EventArgs e) =>
{
// Do stuff!
});
ItemImage.GestureRecognizers.Clear();
ItemImage.GestureRecognizers.Add(handler);
它在Xamarin Forms 2.5.1.444934中运行良好。现在,在3.3.0.967583中,单击一次即可为多个图像视图调用“任务”。我不确定3.1.0.637273表格中是否存在此问题。该错误仅影响iOS。
作为一种解决方法,我在“执行操作”之前添加了200毫秒的延迟,如果在该间隔内有新事件到达,则“填充”不是“完成”。幸运的是,“真实”事件排在最后。不幸的是,我在点击之前滚动列表视图的次数越多,就会出现更多的事件,而且我担心某种资源溢出。
有人注意到吗?是否有“适当的”修复程序?我可能做错了什么吗?我应该将TapGestureRecognizer
换成其他东西吗?如果可以,换成什么东西?
谢谢!