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

如何实现BottomNavigationBar中菜单项的横向滚动

实现支持横向滚动的多菜单项BottomNavigationBar

要让包含10-15个菜单项的BottomNavigationBar支持横向滚动,核心思路是把BottomNavigationView包裹在HorizontalScrollView中,让它能横向滚动展示所有选项。我帮你修改了原布局代码,直接就能用:

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="110dp"
    android:backgroundTint="@color/colorLight"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/linearLayout3">

    <!-- 用HorizontalScrollView包裹BottomNavigationView,实现横向滚动 -->
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:fillViewport="true"
        android:scrollbars="none"> <!-- 可选:隐藏滚动条,更美观 -->

        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/navigationView"
            android:layout_width="wrap_content" <!-- 关键:设为wrap_content让菜单项撑开宽度 -->
            android:layout_height="wrap_content"
            android:visibility="visible"
            app:itemBackground="@color/colorPrimary"
            app:itemIconTint="@drawable/selector"
            app:itemTextColor="@color/whiteTextColor"
            app:labelVisibilityMode="unlabeled"
            app:menu="@menu/navigation" />

    </HorizontalScrollView>

</FrameLayout>

关键修改说明:

  • HorizontalScrollView:作为外层容器提供横向滚动能力,android:fillViewport="true"确保内容能填满视图宽度,android:scrollbars="none"可以去掉默认滚动条(按需选择)。
  • BottomNavigationView的layout_width:必须设为wrap_content,这样它才会根据菜单项总宽度自适应,而不是强行压缩到屏幕宽度内,滚动功能才能生效。
  • 保留了你原有的所有样式属性(比如itemIconTint、labelVisibilityMode等),确保界面风格统一。

额外注意事项:

  1. 你的@menu/navigation菜单文件里需要添加10-15个<item>项,每个item设置好android:icon和android:title(虽然labelVisibilityMode="unlabeled"会隐藏文字,但title还是要设置,方便无障碍访问)。
  2. 如果想优化滚动体验,可以给HorizontalScrollView添加android:overScrollMode="never"来禁用边缘的弹性闪光效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:12:51