Возможно ли, что Android полупрозрачная панель навигации "запятнает" панель навигации? - PullRequest
1 голос
/ 30 марта 2020

Из-за некоторых «полноэкранных» требований к экрану я временно скрываю строки состояния и навигации при отображении окна, а когда я заканчиваю, я снова их показываю. Это идет довольно хорошо, но оставляет меня в этой странной ситуации:

Слева , мы видим дно Ящик навигации перед тем, как скрыть и показать полупрозрачную панель навигации и

справа , мы видим, как она выглядит после операции. Похоже, полупрозрачная полоса оставила пятно на навигационном ящике! Если вам интересно, если я использую другую навигационную систему (например, 2- или 3-кнопочную), пятно размером с новую панель навигации:

enter image description here

Методы, используемые для скрытия и отображения пользовательского интерфейса системы (панели состояния и навигации):

    /**
     * Use this method to (temporarily) hide the status bar and the navigation bar
     */
    private fun hideSystemUI() {
        window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
        window.decorView.apply {
            systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE
        }
    }

    /**
     * Restore the status and navigation bars
     */
    fun showSystemUI() {
        window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
        window.decorView.apply {
            systemUiVisibility =
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
                } else {
                    View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                }
        }
    }

Ситуация сохраняется до тех пор, пока я не перезапущу действие, в котором размещен ящик.

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