Панель навигации становится прозрачной при открытии клавиатуры

Вот как это выглядит. прозрачная панель навигации

А вот подробности. У меня активность без фона. Но это не проблема. Ни установка рисуемого фона, ни цвета в теме или коде не устранили проблему.

Активность имеет программный режим ввода adjustPan|stateAlwaysHidden

Я также установил эти флаги для представления декора активности в коде.

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

Я попытался явно установить цвет для панели навигации в теме, подобной этой

<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/chat_bg</item>
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>

Но безуспешно(

Я могу воспроизвести это только на своем LG Nexus 5X. На других устройствах, которые я пробовал, панель навигации выглядит заполненной цветом.


person Asimaruk    schedule 27.04.2016    source источник
comment
Поскольку он появляется только на одном устройстве, возможно, вы столкнулись с ошибкой прошивки. Хотя тот факт, что это Nexus, делает это очень маловероятным.   -  person Filip Veselý    schedule 27.04.2016
comment
Я попробовал эмулятор Nexus 6P и получил тот же эффект. Может это все нексус телефоны. Nexus 7 с Android 6 имеет черную панель навигации внизу. Не прозрачный.   -  person Asimaruk    schedule 27.04.2016
comment
Ну, но телефон Nexus имеет правильную реализацию, так что с вашим кодом должно быть что-то не так, но, боюсь, я не могу вам с этим помочь. РЕДАКТИРОВАТЬ: Или, может быть, это предполагаемая функциональность. Хотя маловероятно.   -  person Filip Veselý    schedule 27.04.2016
comment
Даже если это правильно, я хотел бы знать, как с этим бороться.   -  person Asimaruk    schedule 27.04.2016


Ответы (2)


У меня была точно такая же проблема сегодня. В моем случае это произошло из-за темы, которую использовала моя активность, которая была производной от: Theme.AppCompat.NoActionBar. Проблема была не в пользовательской теме, а, видимо, в библиотеке AppCompat. Когда я изменил родителя моего пользовательского стиля на: @android:style/Theme.NoTitleBar.Fullscreen, он начал отображаться со сплошным черным цветом фона, который более желателен, чем прозрачный. Согласен, это похоже на глюк.

Я надеюсь, что это поможет кому-то в будущем, так как я знаю, что это поздний ответ.

person Adrian Lis    schedule 04.08.2016

Я нашел это решение давно. Может быть, это поможет вам сейчас

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
}
person Asimaruk    schedule 25.11.2020