События жизненного цикла страницы в Android

Download Sample Скачайте пример

Эта платформа Android используется для отключения Disappearing событий и Appearing страниц при приостановке приложения и возобновлении соответственно для приложений, использующих AppCompat. Кроме того, она включает возможность контролировать, отображается ли мягкая клавиатура в возобновлении, если она была отображена при приостановке, при условии, что режим работы мягкой клавиатуры установлен в значение WindowSoftInputModeAdjust.Resize.

Примечание.

Обратите внимание, что эти события включены по умолчанию для сохранения существующего поведения для приложений, использующих события. Отключение этих событий позволяет циклу событий AppCompat соответствовать циклу событий до AppCompat.

Эту платформу можно использовать в XAML, задав Application.SendDisappearingEventOnPauseApplication.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 события страницы не будут запущены при приостановке приложения и возобновлении соответственно, и что если при приостановке приложения отображается обратимая клавиатура, оно также будет отображаться при возобновлении приложения:

Lifecycle Events Platform-Specific