Freigeben über


Page Lifecycle-Ereignisse unter Android

Diese plattformspezifische Android-Plattform wird verwendet, um die Disappearing Ereignisse und Appearing Seitenereignisse bei der Anwendungspause bzw. zum Fortsetzen für Anwendungen zu deaktivieren, die AppCompat verwenden. Darüber hinaus bietet es die Möglichkeit, zu steuern, ob die Bildschirmtastatur beim Fortsetzen angezeigt wird, sofern sie angehalten angezeigt wurde, vorausgesetzt, der Betriebsmodus der Softtastatur ist auf festgelegt WindowSoftInputModeAdjust.Resize.

Hinweis

Beachten Sie, dass diese Ereignisse standardmäßig aktiviert sind, um vorhandene Verhaltensweisen für Anwendungen beizubehalten, die auf den Ereignissen basieren. Wenn Sie diese Ereignisse deaktivieren, entspricht der AppCompat-Ereigniszyklus dem Vor-AppCompat-Ereigniszyklus.

Diese plattformspezifische Kann in XAML verwendet werden, indem sie die Application.SendDisappearingEventOnPause, Application.SendAppearingEventOnResumeund Application.ShouldPreserveKeyboardOnResume angefügten Eigenschaften auf boolean Werte festlegen:

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

Alternativ kann sie mit der Fluent-API von C# genutzt werden:

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

Die Application.Current.On<Android> Methode gibt an, dass diese plattformspezifisch nur auf Android läuft. Die Application.SendDisappearingEventOnPause Methode im Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat Namespace wird verwendet, um das Auslösen des Disappearing Seitenereignisses zu aktivieren oder zu deaktivieren, wenn die Anwendung in den Hintergrund wechselt. Die Application.SendAppearingEventOnResume Methode wird verwendet, um das Auslösen des Appearing Seitenereignisses zu aktivieren oder zu deaktivieren, wenn die Anwendung aus dem Hintergrund fortgesetzt wird. Die Application.ShouldPreserveKeyboardOnResume Methode wird verwendet, um zu steuern, ob die Bildschirmtastatur beim Fortsetzen angezeigt wird, sofern sie angehalten angezeigt wird, vorausgesetzt, der Betriebsmodus der Softtastatur ist auf festgelegt WindowSoftInputModeAdjust.Resize.

Das Ergebnis ist, dass die Disappearing Ereignisse und Appearing Seitenereignisse nicht beim Anhalten und Fortsetzen der Anwendung ausgelöst werden. Wenn die Bildschirmtastatur angezeigt wurde, wenn die Anwendung angehalten wurde, wird sie auch angezeigt, wenn die Anwendung fortgesetzt wird:

Plattformspezifische Lebenszyklusereignisse