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.SendDisappearingEventOnPause
propriedades , Application.SendAppearingEventOnResume
e 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: