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,就会触发事件。
我有一个用于聊天消息的 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,就会触发事件。