XamarinでAndroidアプリをフルスクリーンで表示させる

Xamarin.Nativeの場合

MainActivity.csに以下を追加

var systemUiFlags = SystemUiFlags.LayoutStable
			| SystemUiFlags.LayoutHideNavigation
			| SystemUiFlags.LayoutFullscreen
			| SystemUiFlags.HideNavigation
			| SystemUiFlags.Fullscreen
			| SystemUiFlags.ImmersiveSticky;
Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(int)systemUiFlags;

Xamarin.Formsの場合

Android 4.4以下はNativeと同じでいいんですけど、Android 5以降はなぜかステータスバーの内容だけ消えて表示領域が取り残される謎状態になります。

対応としてはbase.OnCreateのあとに以下を追加します。

	if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
	{
		this.Window.AddFlags(WindowManagerFlags.Fullscreen);
		this.Window.AddFlags(WindowManagerFlags.KeepScreenOn);
	}

OnCreate全体を見るとこんな感じ

protected override void OnCreate(Bundle bundle)
{
	base.OnCreate(bundle);

	if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
	{
		this.Window.AddFlags(WindowManagerFlags.Fullscreen);
		this.Window.AddFlags(WindowManagerFlags.KeepScreenOn);
	}

	global::Xamarin.Forms.Forms.Init(this, bundle);
	LoadApplication(new App());

	var systemUiFlags = SystemUiFlags.LayoutStable
				| SystemUiFlags.LayoutHideNavigation
				| SystemUiFlags.LayoutFullscreen
				| SystemUiFlags.HideNavigation
				| SystemUiFlags.Fullscreen
				| SystemUiFlags.ImmersiveSticky;
	Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(int)systemUiFlags;
}
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中