BottomNavigationView的使用


1、首先导包 
implementation 'com.google.android.material:material:1.0.0'

2、在res文件夹中新建menu目录,新建navigation.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:id="@+id/main_tab_jllist"
    android:title="记录"
    android:icon="@drawable/gp" />
    <item android:id="@+id/main_tab_sys" android:title="设置"
        android:icon="@drawable/sz"
        >item>
menu>

3、设置按下去的颜色,在color目录下新建main_bottom_navigation.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#dc4b92" android:state_checked="true">item>
    <item android:color="#bfbfbf" android:state_checked="false">item>
selector>

4、在主布局文件中添加控件

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:itemIconTint="@color/main_bottom_navigation"
        app:itemTextColor="@color/main_bottom_navigation"
        app:menu="@menu/navigation"
        android:id="@+id/main_bottomnv">com.google.android.material.bottomnavigation.BottomNavigationView>

5、代码中实现

先声明一个变量

int lastfragment=0;

实现切换图片方法

main_bottomnv.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){
                    case R.id.main_tab_jllist:
                        if(lastfragment!=0){
                            switchFragment(0);
                        }
                        break;
                    case R.id.main_tab_sys:
                        if(lastfragment!=1){
                            switchFragment(1);
                        }
                        break;
                    }
                item.setChecked(true);
                return false;
            }
        });
private void switchFragment(int i) {
        lastfragment = i;
        main_vp.setCurrentItem(i);
    }

viewpage切换时联动

 main_vp.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                main_bottomnv.getMenu().getItem(position).setChecked(true);
            }
        });