Xamarin.Forms。停止时禁用iOS选取器 "自动选取和关闭",等待 "DONE "按钮点击。

问题描述 投票:0回答:1

我正在使用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上有一个问题。它包含一个长长的列表,但当你停止滚动时,拾取器会自动接受高亮显示的项目并关闭。但这是一个问题,因为你的手指只能拖动到这么远。如果列表还没有到达终点,那么要进入下一个项目就会非常困难(你必须用两个手指不间断地触摸)。

我如何才能使选取器只在 "完成 "按钮被按下时关闭,而不是简单地不再触摸它?

谢谢你!

xamarin.forms picker
1个回答
1
投票

根据... 在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);

0
投票

使用thisxmlns:iOSSpecific="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"

然后<Picker iOSSpecific:Picker.UpdateMode="WhenFinished"

© www.soinside.com 2019 - 2024. All rights reserved.