Bottom Tab Navigation 显示异常:竖屏模式下标签被遮挡问题求助
大家好,我最近碰到了一个底部导航栏的显示bug:竖屏模式下底部导航的图标和文字会被上方内容(或者系统UI)遮挡一部分,但切换到横屏模式时就完全正常。麻烦帮忙看看哪里出问题了,以下是我的相关代码和问题细节:
主布局文件(对应MainLayoutActivity)
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainLayoutActivity"> <FrameLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="75dp" app:menu="@menu/bottom_nav_menu" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" tools:ignore="MissingConstraints" /> </androidx.constraintlayout.widget.ConstraintLayout>
底部导航菜单文件(bottom_nav_menu.xml)
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/home" android:title="Home" android:icon="@drawable/baseline_home_filled_24"/> <item android:id="@+id/interations" android:title="Interactions" android:icon="@drawable/baseline_message_24"/> <item android:id="@+id/highlights" android:title="Hightlights" android:icon="@drawable/baseline_edgesensor_high_24"/> <item android:id="@+id/search" android:title="Search" android:icon="@drawable/baseline_search_24"/> </menu>
问题现象
竖屏状态下,底部导航栏的下半部分被遮挡,图标和文字显示不完整;但横屏时导航栏能完整显示,没有任何遮挡。
我自己排查的几个方向(还没解决)
- 怀疑是固定高度的问题:我给导航栏设了
75dp的固定高度,会不会和某些设备的系统底部导航栏高度冲突? - 有没有可能是Activity主题的问题?比如主题设置了全屏/沉浸式,导致布局没有避开系统导航区域?
- Fragment容器的约束是不是有问题?虽然已经把容器底部绑在导航栏顶部,但会不会有层级覆盖的情况?
有没有朋友遇到过类似的问题?或者对这些排查方向有补充的?麻烦帮忙指点一下,谢谢!




