Eventos de ciclo de vida de página en Android
Esta característica específica de la plataforma Android se usa para deshabilitar los eventos de página Disappearing
y Appearing
en la pausa y la reanudación de la aplicación, respectivamente, para las aplicaciones que usan AppCompat. Además, incluye la capacidad de controlar si el teclado en pantalla se muestra en la reanudación, si se mostró en pausa, siempre que el modo de funcionamiento del teclado en pantalla esté establecido en WindowSoftInputModeAdjust.Resize
.
Nota:
Tenga en cuenta que estos eventos están habilitados de forma predeterminada para conservar el comportamiento existente para las aplicaciones que dependen de los eventos. Al deshabilitar estos eventos, el ciclo de eventos AppCompat coincide con el ciclo de eventos anterior a AppCompat.
Esta característica específica de la plataforma se puede consumir en XAML estableciendo las propiedades adjuntas Application.SendDisappearingEventOnPause
, Application.SendAppearingEventOnResume
y Application.ShouldPreserveKeyboardOnResume
en valores 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>
Como alternativa, se puede consumir desde C# mediante la API fluida:
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);
El método Application.Current.On<Android>
especifica que esta plataforma específica solo se ejecutará en Android. El método Application.SendDisappearingEventOnPause
, del espacio de nombres Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat
, se usa para habilitar o deshabilitar la activación del evento de página Disappearing
cuando la aplicación entra en segundo plano. El método Application.SendAppearingEventOnResume
se usa para habilitar o deshabilitar la activación del evento de página Appearing
cuando la aplicación se reanuda desde segundo plano. El método Application.ShouldPreserveKeyboardOnResume
se usa para controlar si el teclado en pantalla se muestra en la reanudación, si se mostró en pausa, siempre que el modo de funcionamiento del teclado en pantalla esté establecido en WindowSoftInputModeAdjust.Resize
.
El resultado es que los eventos de página Disappearing
y Appearing
no se activarán en la pausa y reanudación de la aplicación, respectivamente, y que si el teclado en pantalla se mostró cuando se pausó la aplicación, también se mostrará cuando se reanude la aplicación: