VL
requestLayout
срабатывает асинхронно, он ставится на выполнение через mainHandler. Это значит, что Вы не можете гарантировать когда конкретно и сколько раз он будет вызван. Я вижу два варианта решения
1) Переписать код правильно чтобы было неважно сколько раз вызывается этот метод и когда
2) (Костыль) в
onCreate
прятать NAVBAR, в onResume
сделать post { setContentView(...) }
Я думаю, Вы понимаете за какой я вариант)