Fullscreen App With DisplayCutout
Set these properties in your theme :
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item><item name="android:windowTranslucentStatus">true</item><item name="android:windowTranslucentNavigation">true</item>
I tried lot's of things but didn't get any success, then I try the following code and it's working fine.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { getWindow().getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; } --- }
I hope it's helpful.
I finally found out why. For some strange reason, the application won't enter the if condition:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { // It never gets here}
I removed that if condition and the activity finally goes fullscreen correctly.
Here are the bare minimum codes required to render the activity fullscreen.
Activity:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // or add <item name="android:windowTranslucentStatus">true</item> in the theme window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) val attrib = window.attributes attrib.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES }}
Styles:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- Adding fullscreen will just hide the status bar --> <!-- <item name="android:windowFullscreen">true</item> --></style>