Seitenlebenszyklusereignisse unter Android

Beispiel herunterladen Das Beispiel herunterladen

Diese Android-plattformspezifische Funktion dient zum Deaktivieren der Disappearing Seitenereignisse und Appearing zum Anhalten bzw. Fortsetzen der Anwendung für Anwendungen, die AppCompat verwenden. Darüber hinaus bietet sie die Möglichkeit, zu steuern, ob die softe Tastatur beim Fortsetzen angezeigt wird, wenn sie beim Anhalten angezeigt wurde, vorausgesetzt, dass der Betriebsmodus der weichen Tastatur auf WindowSoftInputModeAdjust.Resizefestgelegt ist.

Hinweis

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

Diese plattformspezifische Eigenschaft kann in XAML verwendet werden, indem die angefügten Application.SendDisappearingEventOnPauseEigenschaften , Application.SendAppearingEventOnResumeund Application.ShouldPreserveKeyboardOnResume auf boolean Werte festgelegt werden:

<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 es über C# mithilfe der Fluent-API verwendet 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 plattformspezifische Nur unter Android ausgeführt wird. Die Application.SendDisappearingEventOnPause -Methode im -Namespace wird verwendet, um das Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat 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 softe Tastatur beim Fortsetzen angezeigt wird, sofern der Betriebsmodus der soften Tastatur auf WindowSoftInputModeAdjust.Resizefestgelegt ist.

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

Lebenszyklusereignisse plattformspezifisch