How to set fullscreen in Android R? How to set fullscreen in Android R? android android

How to set fullscreen in Android R?


KOTLIN

override fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.layout_container)    @Suppress("DEPRECATION")    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {        window.insetsController?.hide(WindowInsets.Type.statusBars())    } else {        window.setFlags(            WindowManager.LayoutParams.FLAG_FULLSCREEN,            WindowManager.LayoutParams.FLAG_FULLSCREEN        )    }}

if this doesn't help, try to remove android:fitsSystemWindows="true" in the layout file

JAVA

class Activity extends AppCompatActivity {@Override@SuppressWarnings("DEPRECATION")protected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.layout_container);    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {        final WindowInsetsController insetsController = getWindow().getInsetsController();        if (insetsController != null) {            insetsController.hide(WindowInsets.Type.statusBars());        }    } else {        getWindow().setFlags(                WindowManager.LayoutParams.FLAG_FULLSCREEN,                WindowManager.LayoutParams.FLAG_FULLSCREEN        );    }}}


I had problem like user924

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.WindowInsetsController com.android.internal.policy.DecorView.getWindowInsetsController()' on a null object reference

I could fix this problem by adding full screen setting code after setContentView. Also, usually, full screen will be screen without not only status bar, but also navigation bar too. Furthermore, just hide() method isn't enough. If we put only this line, when we swipe down screen to see status bar, it comes down, but never goes up again. By setting systemBarBehavior, we can make status bar and navigation bar appear temporarily only when we swipe just like full screen what we know.

setContentView(R.layout.YOUR_LAYOUT)//Set full screen after setting layout content@Suppress("DEPRECATION")if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {    val controller = window.insetsController    if(controller != null) {        controller.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())        controller.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE    }} else {    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)}


For API >= 30, use WindowInsetsController.hide():

window.insetsController.hide(WindowInsets.Type.statusBars())