gpt4 book ai didi

xaml - 如何在 Xamarin.Forms 中同时长按和短按列表项?

转载 作者:行者123 更新时间:2023-12-05 01:37:41 27 4
gpt4 key购买 nike

我需要列表中的长按和短按

我正在为列表中的项目(ListView/CollectionView)使用长按效果但是当它起作用时,短按(点击)却不起作用!

我的问题是:我是否需要创建另一个效果版本的快捷键,或者我可以同时拥有两者吗?我到处搜索,没有任何信息可以帮助我找到解决方案...

我一直在玩这个code in my repository无法同时使两者工作。

<CollectionView
x:Name="carsCollection"
ItemsSource="{Binding Cars}"
SelectionMode="Single"
SelectionChangedCommand="{Binding TapCommand}"
SelectionChangedCommandParameter="{Binding Source={x:Reference carsCollection}, Path=SelectedItem}"
BackgroundColor="Orange">
<CollectionView.ItemTemplate>
<DataTemplate>
<ContentView>
<StackLayout
effects:LongPressedEffect.Command="{Binding Path=BindingContext.LongTapCommand, Source={x:Reference ThisPage}}"
effects:LongPressedEffect.CommandParameter="{Binding .}">
<Label Text="CollectionView: Long Press works but not normal selection" />
<StackLayout.Effects>
<effects:LongPressedEffect />
</StackLayout.Effects>
</StackLayout>
</ContentView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>

包含命令的 ViewModel 是 here .

最佳答案

您可以使用高度可定制的 TouchEffect Xamarin Community Toolkit包(这是一个收集了许多很酷的可重用/通用控件、效果、行为...的包)。

使用示例,您甚至可以控制长按的持续时间(默认 = 500 毫秒):

 xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
<StackLayout
xct:TouchEffect.LongPressCommand="{Binding Path=BindingContext.LongTapCommand, Source={x:Reference ThisPage}}"
xct:TouchEffect.LongPressCommandParameter="{Binding .}"
xct:TouchEffect.LongPressDuration="2000"
xct:TouchEffect.Command="{Binding Path=BindingContext.TapCommand, Source={x:Reference ThisPage}}"
xct:TouchEffect.CommandParameter="{Binding .}">

此外,您还可以应用动画和许多其他内容。

资源

文档(工作中)https://learn.microsoft.com/en-us/xamarin/community-toolkit/

repo https://github.com/xamarin/XamarinCommunityToolkit/

https://www.youtube.com/watch?v=BcFlZMhPmVk

关于xaml - 如何在 Xamarin.Forms 中同时长按和短按列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60694818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com