Панель навигации не будет скрываться при переключении на другое приложение, а также при создании снимка экрана? - PullRequest
0 голосов
/ 11 апреля 2020

Так что я работаю над приложением, которое имеет полный экран. Код работает отлично. Но когда я переключаюсь на любое другое приложение и возвращаюсь к нему, панель навигации и строка состояния не скрываются. Это также происходит, когда я делаю снимок экрана.

Вот предварительный просмотр: Preview of problem

Возвращаясь, вот что я кодировал:

private fun funcFullScreen() {
        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_FULLSCREEN
                or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
    }

И я просто вызываю функцию вот так funcFullScreen().

Что я пробовал?

1] androidFocusableInTouchMode="true"

2] Я тоже пытался добавив onWindowFocusChange, но это доставило мне еще одну головную боль, панель навигации появится на секунду или две, когда я переключу действия в самом приложении. И исправление, которое кажется трудным, я уже попробовал каждое возможное решение для этого, доступное на inte rnet.

Любой способ решить это? Из-за того, что я в порядке с Java или Kotlin, мое приложение составлено из обоих (некоторые действия в Java, а другие в Kotlin), и оба страдают от этой проблемы.

3] Также попытался добавить код в onResume, это работает, когда я переключаюсь из другого приложения, но не когда делаю скриншот.

1 Ответ

1 голос
/ 11 апреля 2020

Так что, в принципе, я думаю, что вы пишете весь этот код в методе onCreate () этого действия. Когда вы go переходите в другое приложение, на экране активности по умолчанию отображаются строка состояния и панель навигации, и вы снова возвращаетесь, а затем не получайте обратный вызов в onCreate (), вместо этого получайте его в onResume (), поэтому вам нужно переместить свой код в OnResume () из onCreate (), чтобы он вызывался, когда вы снова возвращаетесь к этому экрану.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...