Xamarin.Forms 当有元素时,列表视图上的 TapGestureRecognizer 不工作

Xamarin.Forms TapGestureRecognizer on listview not working when there are elements

我有一个用于聊天消息的 ListView。为了关闭键盘,我在 ListView 中的任何地方监听点击手势。如果 ListView 有项目,它永远不会触发,但如果没有项目,它就会正常触发。我做错了什么?

我也尝试过 XamarinCommunityToolkit TouchEvents,但这也行不通。我只能让它在整个 ContentView 上触发。

 public LiveEventChat() {
            InitializeComponent();

            var listviewgesture = new TapGestureRecognizer();
            listviewgesture.Tapped += Listviewgesture_Tapped;
            messageList.GestureRecognizers.Add(listviewgesture);        
        }

可以给ListView添加ItemTapped事件,当ListView被点击时触发。

这是 xaml 代码:

<StackLayout>
    <ListView x:Name="mytest" ItemTapped="mytest_ItemTapped">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Label Text="{Binding .}"></Label>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>        
</StackLayout>

这里是cs代码:

 private void mytest_ItemTapped(object sender, ItemTappedEventArgs e)
 {
     //do something
 }

使用上面的代码,只要点击ListView,就会触发事件。