You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Bottom NavigationView高度异常问题求助

解决BottomNavigationView高度适配ActionBar的问题

你遇到的问题源于Material Design的BottomNavigationView默认带有内置内边距和最小高度限制:

  • 设置wrap_content时,会保留这些默认间距,导致整体高度超出预期
  • 直接强制设为?attr/actionBarSize,会因高度不足挤压内部图标和文字

下面是几种可行的解决方法:

方法1:使用Material库的标准高度属性

Material组件库专门为BottomNavigationView定义了标准高度属性,既能符合设计规范,高度也和ActionBar接近:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_nav"
    android:layout_width="match_parent"
    android:layout_height="?attr/bottomNavigationBarHeight"
    app:labelVisibilityMode="selected"
    app:menu="@menu/bottom_nav_menu" />

方法2:自定义调整内边距与元素大小

如果需要完全匹配ActionBar高度,可以手动减小上下内边距,同时调整图标和文字尺寸,让内容正常显示:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_nav"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:paddingTop="4dp"
    android:paddingBottom="4dp"
    app:labelVisibilityMode="selected"
    app:menu="@menu/bottom_nav_menu"
    app:itemIconSize="24dp"
    app:itemTextSize="12dp" />

方法3:优化整体布局结构(针对你的布局)

你当前布局给FragmentContainerView设置了固定400dp高度,容易导致空间分配不合理。建议改用layout_weight让中间区域自适应剩余空间:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".AppInstalledCheckActivity"
    android:background="#FFEB3B">

    <EditText
        android:id="@+id/edittextPackageName"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:hint="Enter Package Name" />

    <Button
        android:id="@+id/buttonCheckInstalled"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:text="Enter Package Name" />

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:navGraph="@navigation/navgraph" />

     <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_nav"
        android:layout_width="match_parent"
        android:layout_height="?attr/bottomNavigationBarHeight"
        app:labelVisibilityMode="selected"
        app:menu="@menu/bottom_nav_menu" />

</LinearLayout>

内容的提问来源于stack exchange,提问作者CodingDevil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:50:17