2017-04-13 53 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); 
    } 
}