Xamarin.Forms: отключите средство выбора iOS от «автоматического выбора и закрытия» при остановке и ЖДИТЕ, чтобы нажать кнопку «ГОТОВО» - PullRequest
1 голос
/ 29 мая 2020

Я использую обычное средство выбора из 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. Он содержит длинный список с элементами, но когда вы прекращаете прокрутку, средство выбора автоматически принимает выделенный элемент и закрывается. Но это проблема, так как пока можно только провести пальцем вверх. Если список еще не дошел до конца, переходить к следующим элементам очень привередливо (для непрерывного касания нужно использовать оба пальца). кнопка не нажата и просто перестала касаться?

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Согласно Выбор элемента средства выбора в iOS документах, Picker имеет 2 типа выбора:

Немедленно - выбор элемента происходит, когда пользователь просматривает элементы в сборщике. Это поведение по умолчанию в Xamarin.Forms.

WhenFinished - выбор элемента происходит только после того, как пользователь нажмет кнопку «Готово» в средстве выбора.

В вашем случае вы хотите второй один.

Если ваш код находится в 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>

Если ваш код находится в файле кода программной части:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

picker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);
0 голосов
/ 25 июня 2020

Используйте этот xmlns: iOSSpecific = "clr-namespace: Xamarin.Forms.PlatformConfiguration.iOSSpecific; assembly = Xamarin.Forms.Core"

И затем

...