Android API <35 Полноэкранный приложение путаницаJAVA

Программисты JAVA общаются здесь
Anonymous
Android API <35 Полноэкранный приложение путаница

Сообщение Anonymous »

Я работаю над приложением Android (Home Project), написанным на Java. Я случайный разработчик Android, и для достижения полноэкранной функциональности я применил те же шаги, которые я успешно использовал пару лет назад: < /p>
  • Изменить тему: < /li>
    < /ol>

    Код: Выделить всё

    false
    true
    true
    false
    
    
    
    
    

    Main activity (extending FragmentActivity, the only activity I have since I'm using fragments):

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this); //apparently for API 35+ this is the only thing I need

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

setContentView(R.layout.activity_main);
... }
Проблема заключается в том, что при тестировании этого на API 34 мое приложение Вроде полный экран. На вершине есть тонкая черная линия, где должен быть системная полоса. Кроме того, Play Store дал мне предупреждение, которое я использую устаревшие методы для полного экрана. Я пытался использовать вставки и маржу, как предложены документы Google, но это не дало результатов. Удивительно, что показ приложения в режиме полноэкранного режима без других элементов на экране настолько сложна и требует большего кода, чем настройка простого свойства действия.

Код: Выделить всё

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

EdgeToEdge.enable(this);

Window window = getWindow();
View decorView = getWindow().getDecorView();

WindowCompat.setDecorFitsSystemWindows(window, false);
WindowInsetsControllerCompat controllerCompat = new WindowInsetsControllerCompat(window, decorView);
controllerCompat.hide(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.navigationBars());
controllerCompat.setSystemBarsBehavior(WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
and the result I get (top of the screen):
Изображение


Я также удалил все из моих тем.>

Подробнее здесь: https://stackoverflow.com/questions/793 ... -confusion

Вернуться в «JAVA»