2017-04-13 26 views
0

我正在嘗試使用Xamarin Android創建全屏模式(如視頻播放器)應用程序。不幸的是,我遇到了一個問題,關於在狀態欄中顯示的空白區域。如何在Xamarin中刪除顯示在狀態欄位置的空白android

我在這裏附上關於我的問題的截圖。

enter image description here

聽到我的代碼,在MainActivity:

Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); 
Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(
SystemUiFlags.LayoutStable | 
SystemUiFlags.LayoutHideNavigation | 
SystemUiFlags.LayoutFullscreen | 
SystemUiFlags.HideNavigation | 
SystemUiFlags.ImmersiveSticky | 
SystemUiFlags.Fullscreen); 

這是我style.xml

<style name="MyTheme" parent="MyTheme.Base"> 
</style> 
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowBackground">@drawable/splashscreen</item> 
</style> 

回答

0

我掙扎了好幾天...... 把這個onCreate方法(mainactivity.cs)

public class MainActivity : FormsAppCompatActivity 
{ 
    protected override void OnCreate(Bundle bundle) 
    { 
     TabLayoutResource = Resource.Layout.Tabbar; 
     ToolbarResource = Resource.Layout.Toolbar; 
     this.Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.TurnScreenOn); 
     if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) 
     { 
      var stBarHeight = typeof(FormsAppCompatActivity).GetField("statusBarHeight", BindingFlags.Instance | BindingFlags.NonPublic) ?? typeof(FormsAppCompatActivity).GetField("_statusBarHeight", BindingFlags.Instance | BindingFlags.NonPublic); 
      stBarHeight?.SetValue(this, 0); 
     } 

     base.OnCreate(bundle); 

     Forms.Init(this, bundle); 
     LoadApplication(new App()); 
    } 



    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 
    { 
     PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); 
    } 
} 
相關問題