Android でのページ ライフサイクル イベント

この Android プラットフォーム固有の機能は、AppCompat を使用するアプリケーションに対して、アプリケーションの一時停止時と再開時に Disappearing および Appearing ページ イベントを無効にするために使用されます。 さらに、ソフト キーボードの動作モードが WindowSoftInputModeAdjust.Resize に設定されている場合に、一時停止時にソフト キーボードが表示された場合に再開時に表示するかどうかを制御する機能も含まれています。

Note

これらのイベントは、イベントに依存するアプリケーションの既存の動作を保持するために、既定で有効になっていることに注意してください。 これらのイベントを無効にすると、AppCompat イベント サイクルが AppCompat より前のイベント サイクルと一致します。

このプラットフォーム固有のプロパティは、Application.SendDisappearingEventOnPauseApplication.SendAppearingEventOnResumeApplication.ShouldPreserveKeyboardOnResume 添付プロパティを 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 上でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.AndroidSpecific.AppCompat 名前空間の Application.SendDisappearingEventOnPause メソッドは、アプリケーションがバックグラウンドに入ったときに、Disappearing ページ イベントの発生を有効または無効にするために使用されます。 Application.SendAppearingEventOnResume メソッドは、アプリケーションがバックグラウンドから再開されたときに、Appearing ページ イベントの発生を有効または無効にするために使用されます。 Application.ShouldPreserveKeyboardOnResume メソッドは、ソフト キーボードの動作モードが WindowSoftInputModeAdjust.Resize に設定されている場合に、一時停止時にソフト キーボードが表示された場合に、ソフト キーボードを再開時に表示するかどうかを制御するために使用されます。

その結果、アプリケーションの一時停止時と再開時に Disappearing および Appearing ページ イベントが発生せず、アプリケーションの一時停止時にソフト キーボードが表示された場合は、アプリケーションの再開時にも表示されます。

ライフサイクル イベントのプラットフォーム固有設定