Compartilhar via


Eventos do ciclo de vida da página no Android

Este específico da plataforma Android é usado para desativar os Disappearing eventos e Appearing página em pausa e retomada do aplicativo, respectivamente, para aplicativos que usam AppCompat. Além disso, ele inclui a capacidade de controlar se o teclado virtual é exibido na retomada, se foi exibido em pausa, desde que o modo de operação do teclado virtual esteja definido como WindowSoftInputModeAdjust.Resize.

Observação

Observe que esses eventos são habilitados por padrão para preservar o comportamento existente para aplicativos que dependem dos eventos. Desabilitar esses eventos faz com que o ciclo de eventos AppCompat corresponda ao ciclo de eventos pré-AppCompat.

Esse específico da plataforma pode ser consumido em XAML definindo as Application.SendDisappearingEventOnPausepropriedades , Application.SendAppearingEventOnResumee Application.ShouldPreserveKeyboardOnResume anexadas aos boolean valores:

<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>

Como alternativa, ele pode ser consumido do C# usando a API fluente:

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);

O Application.Current.On<Android> método especifica que essa plataforma específica só será executada no Android. O Application.SendDisappearingEventOnPause método, no namespace, é usado para habilitar ou desabilitar o disparo do Disappearing evento page, quando o aplicativo entra em Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat segundo plano. O Application.SendAppearingEventOnResume método é usado para habilitar ou desabilitar o disparo do Appearing evento page, quando o aplicativo é retomado do plano de fundo. O Application.ShouldPreserveKeyboardOnResume método usado para controlar se o teclado virtual é exibido na retomada, se ele foi exibido em pausa, desde que o modo de operação do teclado virtual esteja definido como WindowSoftInputModeAdjust.Resize.

O resultado é que os Disappearing eventos e Appearing page não serão disparados na pausa e retomada do aplicativo, respectivamente, e que, se o teclado virtual foi exibido quando o aplicativo foi pausado, ele também será exibido quando o aplicativo for retomado:

Eventos do ciclo de vida específicos da plataforma