Как установить полноэкранный режим в Android R? - PullRequest
2 голосов
/ 10 июля 2020

Мне нужно установить полноэкранный режим в моем приложении. Для этого я использую этот код:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    requestWindowFeature(Window.FEATURE_NO_TITLE)
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN)
    setContentView(R.layout.activity_camera_photo)

Однако флаг WindowManager.LayoutParams.FLAG_FULLSCREEN устарел.

Мое приложение поддерживает от Android Lollipop (API 21) до Android R ( API 30). Как правильно сделать экран go полноэкранным?

Ответы [ 2 ]

2 голосов
/ 15 июля 2020

KOTLIN

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    @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
        )
    }
}

, если это не помогает, попробуйте удалить android:fitsSystemWindows="true" в файле макета

JAVA

class Activity extends AppCompatActivity {

@Override
@SuppressWarnings("DEPRECATION")
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    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
        );
    }
}
}
2 голосов
/ 10 июля 2020

Для API> = 30 используйте WindowInsetsController.hide():

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