BottomNavigationView 动态切换Icon且保留原图颜色

1.保留icon原图颜色

bottomNavigation.setItemIconTintList(null);

2.动态切换icon

创建资源文件在drawable中

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_home" android:state_selected="true" />
    <item android:drawable="@drawable/icon_home_f" />
</selector>
state_selected为选中的icon

修改menu文件

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/item_pandian"
        android:icon="@drawable/ic_tab_pandian"
        android:title="@string/nav_movie" />
    <item
        android:id="@+id/item_home"
        android:icon="@drawable/ic_tab_home"
        android:title="@string/nav_music" />
    <item
        android:id="@+id/item_setting"
        android:icon="@drawable/ic_tab_setting"
        android:title="@string/nav_photo" />
</menu>

需要做动态切换icon的item,就将原本的icon图片替换成资源文件即可

BottomNavigationView 是 Android 设计库 (Material Design) 中提供的一个组件,用于显示底部导航栏功能,让用户可以在应用的不同页面间切换。 ### 新建 BottomNavigationItemView 的步骤: #### 1. 添加依赖 首先需要确保在 `build.gradle` 文件中添加了 Material Components 的依赖。 ```groovy dependencies { implementation 'com.google.android.material:material:1.4.0' } ``` #### 2. 在布局文件中使用 BottomNavigationView 接下来,在 XML 布局文件中添加 BottomNavigationView,并为其配置一些属性,如设置可见性和默认选中的菜单项。 ```xml <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu" /> ``` 在这个例子中,`bottom_navigation` 是 BottomNavigationView 的 ID,而 `@menu/bottom_navigation_menu` 表示我们将从资源文件中加载菜单资源。 #### 3. 配置 BottomNavigationMenu 资源文件 创建一个新的 menu 资源文件,例如 `bottom_navigation_menu.xml`,并在此文件中添加几个选项对应的 MenuItem。 ```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="首页" android:icon="@drawable/ic_home"/> <item android:id="@+id/explore" android:title="探索" android:icon="@drawable/ic_explore"/> <item android:id="@+id/profile" android:title="个人中心" android:icon="@drawable/ic_profile"/> </menu> ``` #### 4. 设置 BottomNavigationView 的监听器 为了处理点击事件,通常会设置一个 OnNavigationItemSelectedListener 实现接口,然后通过这个接口的回调函数处理各个选项的点击事件。 ```java public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener { private BottomNavigationView bottomNavigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bottomNavigationView = findViewById(R.id.bottom_navigation); bottomNavigationView.setOnNavigationItemSelectedListener(this); // 默认选择第一个选项 bottomNavigationView.getMenu().findItem(R.id.home).setChecked(true); } @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.home: // 点击“首页”时的操作 break; case R.id.explore: // 点击“探索”时的操作 break; case R.id.profile: // 点击“个人中心”时的操作 break; default: return false; } return true; } } ``` 以上就是在 Android 应用中使用 BottomNavigationView 创建按钮的基本步骤。通过上述步骤,你可以轻松地为应用添加底部导航功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值