Android中使用bottomnavigation实现底部导航栏

1.Activity页面

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#EFEDED"
    android:fitsSystemWindows="false"
    >

    <FrameLayout
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/bottom_navigation_1" />



        <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottom_navigation_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:itemBackground="@color/white"            导航栏背景颜色
            app:itemIconTint="@color/selector_color"     icon图片选中和未选中颜色
            app:itemTextColor="@color/selector_color"    文字选中和未选中颜色
            app:menu="@menu/bottom_navigation_menu"    
            app:labelVisibilityMode="labeled"
            android:layout_alignParentBottom="true"/>


</RelativeLayout>

2.创建menu页面 (将需要的图片放入mipmap中或drawable中)

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/home"
        android:title="首页"
        android:checked="true"/>
    <item
        android:id="@+id/navigation_quanzi"
        android:icon="@drawable/jiedan_icon"
        android:title="接单" />
    <item
        android:id="@+id/navigation_dingdan"
        android:icon="@drawable/dingdan"
        android:title="订单" />
    <item
        android:id="@+id/navigation_mine"
        android:icon="@drawable/mine"
        android:title="我的" />

</menu>

3.在Activity的java文件中填写 点击事件(切换fragment页面)

java 复制代码
  private BottomNavigationView bottomNavigationView;   
  bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.navigation_home:
                        ReplaceFragment(new HomeFragment());
                        return true;
                    case R.id.navigation_quanzi:
                        ReplaceFragment(new QuanZiFragment());
                        return true;
                    case R.id.navigation_dingdan:
                        ReplaceFragment(new DingDanFragment());
                        return true;
                    case R.id.navigation_mine:
                        ReplaceFragment(new MineFragment());
                        return true;
                }
                return false;
            }
        });

创建调用切换页面的方法

java 复制代码
  private void ReplaceFragment(Fragment fragment){
        FragmentManager fragmentManager=getSupportFragmentManager();
        FragmentTransaction transaction= fragmentManager.beginTransaction();
        transaction.replace(R.id.frame,fragment);
        transaction.commit();
    }
相关推荐
咕噜企业签名分发-淼淼7 分钟前
如何实现安卓端与苹果端互通的多种方案
android
wu_android42 分钟前
Android 线性布局中常见的冲突属性总结
android
恋猫de小郭1 小时前
为什么跨平台框架可以适配鸿蒙,它们的技术原理是什么?
android·前端·flutter
张风捷特烈2 小时前
每日一题 Flutter#5,6 | 两道 Widget 选择题
android·flutter
移动开发者1号2 小时前
App主界面点击与跳转启动方式区别
android·kotlin
移动开发者1号2 小时前
我用Intent传大图片时竟然崩了,怎么回事啊
android·kotlin
androidwork14 小时前
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
android·java·kotlin·androidx
每次的天空14 小时前
Android第十三次面试总结基础
android·面试·职场和发展
wu_android14 小时前
Android 相对布局管理器(RelativeLayout)
android
李斯维16 小时前
循序渐进 Android Binder(二):传递自定义对象和 AIDL 回调
android·java·android studio