Android底部导航组件BottomNavigationView

 更新时间:2023年03月20日 10:20:48   作者:Dormiveglia-flx  
这篇文章主要介绍了Android底部导航组件BottomNavigationView,BottomNavigationView是相当于一个导航的标签,但是它的形式就是像QQ微信之类的界面,至于写出后怎样绑定这三个界面,就得用Fragment,写这三个页面的布局

什么是BottomNavigationView

底部菜单栏

BottomNavigationView的简单用法

需求:如上图所示。点击测试一菜单,展示test1fragment。点击测试二菜单,展示test2fragment。点击测试三菜单,展示test3fragment。

第一步,testActivity布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  // 容器,承载fragment
  <FrameLayout
    android:id="@+id/nav_host_fragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
  // BottomNavigationView
  <com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/nav_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/bottom_nav_menu_test" />
</LinearLayout>

第二步,写BottomNavigationView所需要的菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:id="@+id/navigation_test1"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="测试一" />
  <item
    android:id="@+id/navigation_test2"
    android:icon="@drawable/ic_dashboard_black_24dp"
    android:title="测试二" />
  <item
    android:id="@+id/navigation_test3"
    android:icon="@drawable/ic_notifications_black_24dp"
    android:title="测试三" />
</menu>

第三步,书写testActivity文件。重点是setOnNavigationItemSelectedListener点击事件

public class TestActivity extends AppCompatActivity {
  List<Fragment> mFragments = new ArrayList<>();
  test1Fragment t1f = new test1Fragment();
  test2Fragment t2f = new test2Fragment();
  test3Fragment t3f = new test3Fragment();
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    BottomNavigationView navView = findViewById(R.id.nav_view);
    mFragments.add(t1f);
    mFragments.add(t2f);
    mFragments.add(t3f);
    // navView 点击事件
    navView.setOnNavigationItemSelectedListener((item)->{
      switchFragment(item.getItemId());
      return true;
    });
  }
  private void switchFragment(int id) {
    Fragment fragment = null;
    switch (id) {
      case R.id.navigation_test1:
        fragment = mFragments.get(0);
        break;
      case R.id.navigation_test2:
        fragment = mFragments.get(1);
        break;
      case R.id.navigation_test3:
        fragment = mFragments.get(2);
        break;
      default:
        break;
    }
    if (fragment != null) {
      getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,fragment).commit();
    }
  }
}

到此这篇关于Android底部导航组件BottomNavigationView的文章就介绍到这了,更多相关Android BottomNavigationView内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android实现闹钟功能小Dome

    Android实现闹钟功能小Dome

    本篇文章主要介绍了Android实现闹钟功能小Dome,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Kotlin Thread线程与UI更新详解

    Kotlin Thread线程与UI更新详解

    本篇主要介绍Kotlin中Thread线程与UI更新,注意不是协程而是线程。Kotlin本身是支持线程的。同时协程也是运行在线程中的
    2022-12-12
  • Android ADB超简单的安装教程(推荐)

    Android ADB超简单的安装教程(推荐)

    adb是Android的一个很重要的调试工具,熟练掌握后可实现很多功能,比如有些手机的解锁、ROOT就会用到adb工具。可很多朋友都说不会安装,所以下面这篇文章主要给大家介绍了关于Android ADB超简单的安装教程,安装非常简单,需要的朋友可以参考下
    2018-07-07
  • Android使用kotlin实现多行文本上下滚动播放

    Android使用kotlin实现多行文本上下滚动播放

    这篇文章主要为大家详细介绍了Android使用kotlin实现多行文本的上下滚动播放,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • android不同activity之间共享数据解决方法

    android不同activity之间共享数据解决方法

    最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来需要的朋友可以参考下
    2012-11-11
  • Android实现环信修改头像和昵称

    Android实现环信修改头像和昵称

    这篇文章主要为大家详细介绍了Android实现环信修改头像和昵称,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • android开发教程之自定义属性用法详解

    android开发教程之自定义属性用法详解

    这篇文章主要介绍了android开发中的自定义属性用法详解,需要的朋友可以参考下
    2014-04-04
  • Android Service总结及详细介绍

    Android Service总结及详细介绍

    本文主要介绍Android Service的知识,这里整理了详细资料及简单实现示例代码,有需要的小伙伴可以参考下
    2016-09-09
  • 2021最新Android笔试题总结美团Android岗职能要求

    2021最新Android笔试题总结美团Android岗职能要求

    这篇文章主要介绍了2021最新Android笔试题总结以及美团Android岗职能要求,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Android 深入探究自定义view之事件的分发机制与处理详解

    Android 深入探究自定义view之事件的分发机制与处理详解

    对于安卓程序员来说,自定义view简直不要太重要,毕竟有很多功能,譬如圆形头像这些,用单纯的原生非常难以实现,而用自定义view,简直分分钟
    2021-11-11

最新评论