我正在使用xamarin.forms的常规拾取器。
<Picker
x:Name="picker_subcat2_mainmenu"
Margin="10,0,10,0"
Grid.Column="3"
TitleColor="#ffffff"
Title=" + "
Grid.Row="1"
FontFamily="arial"
BackgroundColor="#00000000"
TextColor="#ffffff"
HorizontalOptions="Center"
VerticalOptions="Center">
</Picker>
然而,这个选择器在iOS上有一个问题。它包含一个长长的列表,但当你停止滚动时,拾取器会自动接受高亮显示的项目并关闭。但这是一个问题,因为你的手指只能拖动到这么远。如果列表还没有到达终点,那么要进入下一个项目就会非常困难(你必须用两个手指不间断地触摸)。
我如何才能使选取器只在 "完成 "按钮被按下时关闭,而不是简单地不再触摸它?
谢谢你!
根据... 在iOS上选择项目 文件,该 Picker
有2种类型的选择。
立即--当用户浏览Picker中的项目时,项目选择就会发生。这是Xamarin.Forms的默认行为。
WhenFinished - 只有当用户在Picker中按下Done按钮时,项目选择才会发生。
在你的情况下,你想要的是第二种。
如果你的代码是在xml中的,你可以这样做。
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
<StackLayout Margin="20">
<Picker ... Title="Select a monkey" ios:Picker.UpdateMode="WhenFinished">
...
</Picker>
...
</StackLayout>
</ContentPage>
如果你的代码是在cod-behind文件中,
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
picker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);
使用thisxmlns:iOSSpecific="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
然后<Picker iOSSpecific:Picker.UpdateMode="WhenFinished"