2016-08-13 15 views
0

私のアプリでステータスバーを非表示にしようとしています。私はアプリを構築するためにC#とXamarinを使用しています。ステータスバーを非表示にする

私は活動のOnCreateメソッドから呼び出して、次の方法があります。

private void hideBars() 
    { 
     var decorView = this.Window.DecorView; 
     int uiOptions = (int)Android.Views.SystemUiFlags.LayoutStable | 
         (int)Android.Views.SystemUiFlags.LayoutHideNavigation | 
         (int)Android.Views.SystemUiFlags.Fullscreen | 
         (int)Android.Views.SystemUiFlags.ImmersiveSticky; 
     decorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)uiOptions; 

     ActionBar.Hide(); 
    } 

正常に動作します - ときのアプリのロードステータスバーが非表示になっているが、期待通りにダウンスワイプすることができ、初めての。

別のアプリに切り替えて元のアプリを再開すると、ソフトキーボードと同様にステータスバーが表示されます。ステータスバー(とソフトキーボード)を作成時と同じようにレジュームしないようにします。私は次の方法を持っています:

protected override void OnResume() 
    { 
     base.OnResume(); 
     hideBars(); 
    } 

しかし、ステータスバー(とキーボード)は、アプリケーションの再開時に表示されます。

その他に何が必要ですか?

答えて

0
Window.AddFlags(WindowManagerFlags.Fullscreen); 
Window.ClearFlags(WindowManagerFlags.ForceNotFullscreen); 

これは粘着性浸漬のandroid developer docsからのものです。

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     decorView.setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);} 
} 
+0

それは役に立たなかった... – JeffR

+0

私はあなたも目標のApiレベル12を使用する必要があると信じています。あなたはレベル14を使用しているので、なぜ動作しないのかわかりません。 –

+0

変数decorViewを使ってウィンドウを宣言しているので、 "Window"の代わりにそれを使ってみるか、this.Windowを使ってみてください –

関連する問題