BottomNavigationView高度异常求助:wrap_content设置后高度翻倍
以下是几种直接的排查和解决思路:
1. 检查自定义文本样式的设置
你配置了app:itemTextAppearanceActive和app:itemTextAppearanceInactive,大概率是自定义的BottomNavigationView.Active/Inactive样式中,设置了过大的lineHeight、padding或textSize,导致整体高度被撑高。
打开样式定义文件,示例调整如下:
<style name="BottomNavigationView.Active" parent="TextAppearance.Material.BottomNavigationView.Active"> <!-- 仅保留颜色、字体大小等必要属性,移除多余的padding、lineHeight设置 --> <item name="android:textColor">@color/active_color</item> <item name="android:textSize">12sp</item> </style>
确保样式父类使用官方默认的BottomNavigationView文本样式,避免自定义属性破坏原有布局结构。
2. 强制设置默认高度
若不想排查样式问题,可直接给BottomNavigationView设置官方标准高度:
<com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottomAppBar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" <!-- 复用ActionBar默认高度,与BottomNavigationView标准高度一致 --> android:background="@color/primary" app:itemIconSize="20dp" app:itemTextAppearanceActive="@style/BottomNavigationView.Active" app:itemTextAppearanceInactive="@style/BottomNavigationView.Inactive" android:layout_alignParentBottom="true" app:menu="@menu/bottom_menu"/>
也可直接设置固定值56dp(Material Design中BottomNavigationView的标准高度)。
3. 检查菜单文件配置
打开@menu/bottom_menu,确认每个<item>没有设置额外的android:iconPadding或自定义actionLayout,这些配置可能导致高度异常:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/home" android:icon="@drawable/ic_home" android:title="@string/home" <!-- 移除类似android:iconPadding="10dp"的多余设置 --> /> </menu>
4. 替换背景设置方式
尝试用app:backgroundTint替代android:background设置背景色,避免自定义背景drawable带来的额外高度:
app:backgroundTint="@color/primary" <!-- 替换原有的android:background="@color/primary" -->
内容的提问来源于stack exchange,提问作者Vivek Patel
相关产品推荐
相关产品推荐

