События жизненного цикла страницы в Android
Эта платформа Android используется для отключения Disappearing
событий и Appearing
страниц при приостановке приложения и возобновлении соответственно для приложений, использующих AppCompat. Кроме того, она включает возможность контролировать, отображается ли мягкая клавиатура в возобновлении, если она была отображена при приостановке, при условии, что режим работы мягкой клавиатуры установлен в значение WindowSoftInputModeAdjust.Resize
.
Примечание.
Обратите внимание, что эти события включены по умолчанию для сохранения существующего поведения для приложений, использующих события. Отключение этих событий позволяет циклу событий AppCompat соответствовать циклу событий до AppCompat.
Эту платформу можно использовать в XAML, задав Application.SendDisappearingEventOnPause
Application.SendAppearingEventOnResume
свойства и Application.ShouldPreserveKeyboardOnResume
прикрепив свойства к boolean
значениям:
<Application ...
xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" xmlns:androidAppCompat="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;assembly=Xamarin.Forms.Core"
android:Application.WindowSoftInputModeAdjust="Resize"
androidAppCompat:Application.SendDisappearingEventOnPause="false"
androidAppCompat:Application.SendAppearingEventOnResume="false"
androidAppCompat:Application.ShouldPreserveKeyboardOnResume="true">
...
</Application>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat;
...
Xamarin.Forms.Application.Current.On<Android>()
.UseWindowSoftInputModeAdjust(WindowSoftInputModeAdjust.Resize)
.SendDisappearingEventOnPause(false)
.SendAppearingEventOnResume(false)
.ShouldPreserveKeyboardOnResume(true);
Метод Application.Current.On<Android>
указывает, что эта платформа будет работать только в Android. Метод Application.SendDisappearingEventOnPause
в Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat
пространстве имен используется для включения или отключения запуска Disappearing
события страницы, когда приложение входит в фон. Метод Application.SendAppearingEventOnResume
используется для включения или отключения запуска Appearing
события страницы, когда приложение возобновляется из фонового режима. Метод Application.ShouldPreserveKeyboardOnResume
используется для управления тем, отображается ли мягкая клавиатура в возобновлении, если она была отображена при приостановке, при условии, что для режима работы мягкой клавиатуры задано WindowSoftInputModeAdjust.Resize
значение .
Результатом является то, что Disappearing
события и Appearing
события страницы не будут запущены при приостановке приложения и возобновлении соответственно, и что если при приостановке приложения отображается обратимая клавиатура, оно также будет отображаться при возобновлении приложения: