I have a game which runs full screen fine on various Android devices but on Google Pixel 2XL I can’t seem to get rid of the action bar or title bar properly. The icons and buttons tween off but the black background remains.
I think the code is all correct:
styles.xml
`<?xml version="1.0" encoding="utf-8"?>
@drawable/splash
true
false
true
`
In MainActivity.cs I have this function which is called in OnCreate, OnResum, OnWindowFocusChanged private void SetImmersive() { if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat) { Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.LayoutStable | SystemUiFlags.LayoutHideNavigation | SystemUiFlags.LayoutFullscreen | SystemUiFlags.HideNavigation | SystemUiFlags.Fullscreen | SystemUiFlags.ImmersiveSticky); } }
OnCreate has this RequestWindowFeature(WindowFeatures.NoTitle); Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);
GraphicsDeviceManger.ResetClientBounds tells me the bounds contain the bars still. If I hack the dimensions here I can get rid of the title bar black area but the action bar remains.
I did some Googling and it sounds like this is expected behaviour on the Pixel, but then some apps dont have this problem implying there must be a way around it.
Hi! Raising up this topic because it still doesnt seem to work. Can someone actually bring the soluction to this ?
I test my game on real samsung s10 with the newest adroid. Followed all tips and code snippets from here and there. Even EXACTLY as pointed in this: https://github.com/MonoGame/MonoGame/issues/6660
The game is still offset by 40 or so pixels from top (black bar).
Funny thing is that in the onCreate, device’s prefferedBackBuffer height is full (correct) and soon after “new GraphicsDeviceManager(this);” and when my resolution manager is reseting viewport its not full. Also debugging touch points reveals that when touched on black bar, the real y value is -40 or so.
Please look into this, I have just updated to 3.7.1… If I mummble too much or anyone wants more debug info Im happy to provide!
For a possible solution see my replay here. but first remove all other workarounds from your project, I don’t know how all that will interact with the default behavior. Also, dont set the graphics.PreferredBackBufferWidth/Height. On android those values are set automatically to the native window bounds.
Well, applied the activity config properties as you instructed, removed ingeration in prefferedbackbuffer… and still no change. I will probably just create blank monogame project from scratch and see if any of my code is the problem. Just to mention: problem didnt exist in 3.6.0
I’ve rebased it to the develop branch a couple of months ago, technically it’s based on 3.8.Something but that’s a bit simplistic way to describe it. For example a part of the fix to this specific bug was to revert changes that occur way back between 3.5 and 3.6 and then add some improvements on top of it.
Thank you for the insight. Unfortunatale I would rather revert to 3.6.0 (which I did now and immersive works fine) than test entire game on 3 platforms again :P.