Android 上的頁面生命週期事件
對於使用AppCompat的應用程式,此Android平臺專屬功能可用來分別停用 Disappearing
應用程式暫停和繼續的和 Appearing
頁面事件。 此外,它也包含控制是否在繼續時顯示軟式鍵盤的能力,如果在暫停時顯示軟式鍵盤,前提是軟式鍵盤的作業模式設定為 WindowSoftInputModeAdjust.Resize
。
注意
請注意,預設會啟用這些事件,以保留依賴事件之應用程式的現有行為。 停用這些事件會使 AppCompat 事件週期符合 AppCompat 事件週期。
藉由將、 Application.SendAppearingEventOnResume
和 Application.ShouldPreserveKeyboardOnResume
附加屬性設定Application.SendDisappearingEventOnPause
為boolean
值,即可在 XAML 中取用此平臺特定專案:
<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>
或者,您可以使用 Fluent API 從 C# 取用它:
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);
方法 Application.Current.On<Android>
會指定此平台專屬只會在Android上執行。 當應用程式進入背景時,命名空間 Application.SendDisappearingEventOnPause
中的 Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat
方法可用來啟用或停用 Disappearing
引發頁面事件。 當 Application.SendAppearingEventOnResume
應用程式從背景繼續時,會使用 方法來啟用或停用 Appearing
引發頁面事件。 Application.ShouldPreserveKeyboardOnResume
如果軟式鍵盤在暫停時顯示,則會使用 方法控制是否要在繼續時顯示軟式鍵盤,前提是軟式鍵盤的作業模式設定為 WindowSoftInputModeAdjust.Resize
。
結果是 Disappearing
不會分別在應用程式暫停和繼續時引發 和 Appearing
頁面事件,如果應用程式暫停時顯示軟式鍵盤,應用程式繼續時也會顯示: