LWEEK: Tohle je problém vývojářů, kteří nejsou sžití s cílovou platformou. Zcela nesprávně očekáváš iOSové chování a snažíš se aplikovat iOSové postupy na prostředí jiného systému. Je tu strašně moc proměnných na to, abych ti poradil konkrétní řešení. Možná by stačilo mít BottomNavigationView v aktivitě a obsah ve fragmentu, a korektně pracovat s gravity vs. layout_alignParentBottom/layout_constraintBottom_toBottomOf a windowSoftInputMode. Možná by stačil windowSoftInputMode s jinou strukturou layoutu. Možná, že by se na to dal použít CoordinatorLayout s příslušným layout_behavior. Těžko říct zpatra, bude to chtít trochu experimentování :-).
LWEEK: Notch se na Androidu handluje přes fitsSystemWindows a WindowInsets (resp. WindowInsetsCompat, pokud si chceš ušetřit bolehlav). Ve většině případů funguje fitsSystemWindows naprosto automaticky (když ho pochopíš), někdy ale musíš něco ručně postrčit přes inset.
No a kdybys trval na jablečném přístupu, můžeš, tuším, WindowInsets (nebo úplně na surovo ViewTreeObserver) použít právě i na to skrývání bottom baru. Jeden z mnoha přístupů řeší třeba tento článek (jeho prioritou jsou animace, ale tento problém adresuje):
https://proandroiddev.com/animating-keyboard-appearance-in-android-application-425a2a26de9a