Compartilhar via


Eventos de ciclo de vida da página no Android

Esse específico da plataforma Android é usado para desativar os Disappearing eventos de página e Appearing na pausa e retomada do aplicativo, respectivamente, para aplicativos que usam AppCompat. Além disso, 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 ativados 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 attached como boolean values:

<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 esse específico da plataforma só será executado no Android. O Application.SendDisappearingEventOnPause método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat namespace, é usado para habilitar ou desabilitar o acionamento do evento de Disappearing página, quando o aplicativo entra em segundo plano. O Application.SendAppearingEventOnResume método é usado para habilitar ou desabilitar o acionamento do Appearing evento de página, quando o aplicativo é retomado em segundo plano. O Application.ShouldPreserveKeyboardOnResume método usado para 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.

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

Eventos de ciclo de vida específicos da plataforma