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

如何在BottomNavigationView选中标签添加环形(仿Instagram样式)

实现BottomNavigationView选中项的环形边框(仿Instagram样式)

当然可以实现,核心思路是通过**状态选择器(Selector)**给底部导航的选中项添加环形背景,以下是具体实现步骤:

1. 创建环形背景选择器

在res/drawable目录下新建circle_selector.xml,定义选中和未选中状态的样式:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 选中状态:显示灰色环形边框 -->
    <item android:state_checked="true">
        <shape android:shape="oval">
            <stroke android:width="2dp" android:color="@color/gray" />
            <solid android:color="@android:color/transparent" />
            <!-- 设置内边距,让环形和图标保持合适间距 -->
            <padding android:left="4dp" android:top="4dp" android:right="4dp" android:bottom="4dp" />
        </shape>
    </item>
    <!-- 未选中状态:透明背景 -->
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent" />
            <padding android:left="4dp" android:top="4dp" android:right="4dp" android:bottom="4dp" />
        </shape>
    </item>
</selector>

2. 给底部导航菜单绑定背景

打开底部导航的菜单文件(比如res/menu/bottom_nav_menu.xml),给每个item设置android:background为上面创建的选择器:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_home"
        android:title="首页"
        android:background="@drawable/circle_selector"/>
    <item
        android:id="@+id/nav_profile"
        android:icon="@drawable/ic_profile"
        android:title="我的"
        android:background="@drawable/circle_selector"/>
    <!-- 其他导航项重复上述配置 -->
</menu>

3. 调整导航栏基础配置

确保你的BottomNavigationView布局中开启了单选模式,保证同一时间只有一个项处于选中状态:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_nav"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    app:menu="@menu/bottom_nav_menu"
    app:checkableBehavior="single"/>

自定义调整

  • 环形颜色:修改circle_selector.xml中stroke的android:color值,适配你的App主题色
  • 环形粗细:调整stroke的android:width参数
  • 图标与环形间距:修改padding值来控制间距大小

如果你的底部导航用了自定义Item布局(比如包含ImageView和TextView的组合),只需将选择器背景设置给ImageView的父容器即可,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:12:30