- Изменить тему :
Код: Выделить всё
false
true
true
false
- Основное действие (расширяющее FragmentActivity, единственное действие, которое у меня есть, поскольку я использую фрагменты):
Код: Выделить всё
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);
... }
Чтобы решить эту проблему, я просмотрел документацию Google и понял, что существуют разные методы для версий API 29–35 (поддерживается мой минимальный SDK). - 25), но, видимо, я не мог правильно понять реализацию, поскольку всякий раз, когда я пробовал решения из документов Google, черная линия либо оставалась, либо приложение становилось полноэкранным, а системная панель отображалась поверх верхней части моего приложения. Я пробовал использовать вставки и поля, как предлагали документы Google, но это не дало результатов.
Я был в таком отчаянии, что даже попросил у GTP решение и, очевидно, получил умозрительные и неработающие «решения» и «идеи».
Можете ли вы мне помочь с этим? Как реализовать правильную полноэкранную поддержку, которая работает для версий API 29–35?
Невероятно, такая тривиальная повседневная вещь, как отображение приложения в полноэкранном режиме без каких-либо других элементов. экран настолько сложен и требует больше кода, чем простая установка свойства действия, ха-ха
РЕДАКТИРОВАТЬ:
Это последняя попытка, которую я пробовал:
Код: Выделить всё
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);
[img]https: //i.sstatic.net/f5zisSY6.png[/img]
Я также удалил все из файла themes.xml, родительской темой является просто Theme.Material3.Light.NoActionBar
Подробнее здесь: https://stackoverflow.com/questions/793 ... -confusion
Мобильная версия