Udostępnij za pośrednictwem


Zdarzenia cyklu życia strony w systemie Android

Ta platforma systemu Android służy do wyłączania DisappearingAppearing odpowiednio wstrzymywania i wznawiania działania i stron w aplikacjach korzystających z aplikacji AppCompat. Ponadto obejmuje możliwość kontrolowania, czy klawiatura miękka jest wyświetlana w wznowieniu, jeśli była wyświetlana podczas wstrzymania, pod warunkiem, że tryb operacyjny miękkiej klawiatury jest ustawiony na WindowSoftInputModeAdjust.Resizewartość .

Uwaga

Należy pamiętać, że te zdarzenia są domyślnie włączone, aby zachować istniejące zachowanie aplikacji, które opierają się na zdarzeniach. Wyłączenie tych zdarzeń sprawia, że cykl zdarzeń AppCompat jest zgodny z cyklem zdarzeń pre-AppCompat.

Tę specyficzną dla platformy można używać w języku XAML, ustawiając Application.SendDisappearingEventOnPausewłaściwości , Application.SendAppearingEventOnResumei Application.ShouldPreserveKeyboardOnResume dołączone do boolean wartości:

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

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:

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

Metoda Application.Current.On<Android> określa, że ta platforma będzie działać tylko w systemie Android. Metoda Application.SendDisappearingEventOnPause w Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat przestrzeni nazw służy do włączania lub wyłączania wyzwalania Disappearing zdarzenia strony, gdy aplikacja przechodzi w tle. Metoda Application.SendAppearingEventOnResume służy do włączania lub wyłączania wyzwalania Appearing zdarzenia strony, gdy aplikacja zostanie wznowiona z tła. Metoda Application.ShouldPreserveKeyboardOnResume jest używana do kontrolowania, czy klawiatura miękka jest wyświetlana w wznowieniu, jeśli była wyświetlana podczas wstrzymania, pod warunkiem, że tryb operacyjny klawiatury miękkiej jest ustawiony na WindowSoftInputModeAdjust.Resize.

Wynikiem jest to, że Disappearing zdarzenia i Appearing strony nie zostaną wyzwolone odpowiednio w przypadku wstrzymania i wznowienia aplikacji, a jeśli klawiatura miękka była wyświetlana po wstrzymaniu aplikacji, będzie również wyświetlana po wznowieniu aplikacji:

Zdarzenia cyklu życia specyficzne dla platformy