首页 > 其他分享 >(原创)安卓快速使用简单的BottomNavigation(结合fragment)

(原创)安卓快速使用简单的BottomNavigation(结合fragment)

时间:2023-12-14 23:11:51浏览次数:32  
标签:NavController BottomNavigation fragment 创建 安卓 bottomNavigationView NavHostFragme

原创声明:本文所有图片和代码皆由本人制作和编写。

目录

前言

这篇文章是边写大作业边查资料边写的,查了很多资料,翻了很多论坛,也遇到了很多bug。我怕写完了就忘记怎么写的,答辩的时候被问懵,所以还是记录一下我的编写过程。

本文仅涉及最简BottomNavigation使用方法,适合用于刚接触安卓的新手。



目标效果

image



第0步 导入库

// navigation
    implementation "androidx.navigation:navigation-fragment:2.3.0-alpha02"
    implementation "androidx.navigation:navigation-ui:2.3.0-alpha02"

image



第1步 准备好一些资源

fragment

我的大作业用了3个页面切换,所以创建3个Fragment:

图片名称

drawable图标

第一小步

image

第二小步

image



第二步 创建menu

选这个:
image
image
image
image



第三步 创建navigation

和menu的创建一样,然后:
image

注意

然后需要在main_xml自动生成的代码添加2句语句,不然app会闪退。
image

app:navGraph="@navigation/navigation"
        app:defaultNavHost="true"


第四步 绑定

在MainActivity里配置 使用 Navigation 组件时的一些基本设置,包括与底部导航栏、ActionBar 以及 NavController 的关联。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 设置 Activity 使用的布局文件为 activity_main.xml
    setContentView(R.layout.activity_main);

    // 找到底部导航栏 BottomNavigationView
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);

    // 找到 NavHostFragment,用于承载 Navigation 组件的各个 Fragment
    NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);

    // 获取与 NavHostFragment 关联的 NavController,用于导航控制
    NavController navController = navHostFragment.getNavController();

    // 创建 AppBarConfiguration 对象,指定哪些目的地应该显示“向上”按钮
    AppBarConfiguration configuration = new AppBarConfiguration.Builder(bottomNavigationView.getMenu()).build();

    // 设置 ActionBar 与 NavController 关联,以便在目标发生变化时更新 ActionBar
    NavigationUI.setupActionBarWithNavController(this, navController, configuration);

    // 将 BottomNavigationView 与 NavController 关联,以便在底部导航项被点击时导航到相应的目的地
    NavigationUI.setupWithNavController(bottomNavigationView, navController);
}

标签:NavController,BottomNavigation,fragment,创建,安卓,bottomNavigationView,NavHostFragme
From: https://www.cnblogs.com/lmj00/p/17902277.html

相关文章

  • Flutter开发之安卓打包,和获取签名相关信息,公钥值相关操作
    我们Flutter开发中,难免有些小朋友因需求要获取打包签名的一些相关信息,下面我们来讲一下怎么获取一生成签名文件我们打包安卓APK包需要先生成签名文件,需运行以下指令,生成签名文件keytool-genkey-v-keystoreGMT\_keystore.keystore-aliasGMT\_keystore-keyalgRSA-keysi......
  • Qt/C++视频监控安卓版/多通道显示视频画面/录像存储/视频播放安卓版/ffmpeg安卓
    一、前言随着监控行业的发展,越来越多的用户场景是需要在手机上查看监控,而之前主要的监控系统都是在PC端,毕竟PC端屏幕大,能够看到的画面多,解码性能也强劲。早期的手机估计性能弱鸡,而现在的手机性能不是一般的牛,甚至超越了PC机的性能,所以手机上查看多路监控也就有了硬件基础前提。对......
  • 安卓之各组件的LayoutParams分析
    文章摘要     在Android开发中,LayoutParams是一个非常重要的概念,它用于描述View在其父容器中的布局行为。不同的ViewGroup有不同的LayoutParams子类,例如LinearLayout.LayoutParams、RelativeLayout.LayoutParams等。本文将分析各组件的LayoutParams获取方式,区别,并附上示......
  • 安卓读写文件的方法以及优劣分析
    文章摘要    在Android开发中,数据的存储和读取是应用程序中常见的操作之一。本文将详细介绍Android中读写文件的方法,并对其优劣进行分析。同时,将附上相应的实现代码,以便读者更好地理解。正文使用Java的IO流    在Android中,我们可以使用Java的文件IO类来读取和写入本地文件......
  • 安卓手机设置代理
    设置代理:adbshellsettingsputglobalhttp_proxyip:port如:adbshellsettingsputglobalhttp_proxy192.168.200.102:8888adbshellsettingsputglobalhttp_proxy192.168.43.127:8887移除代理:adbshellsettingsdeleteglobalhttp_proxyadbshellsettingsdeleteglob......
  • ubuntu 下 docker 中部署 jenkins,并配置安卓 python 开发环境
    1、ubuntu中下载AndroidSdk#安装unzip工具sudoaptupdatesudoaptinstallunzip#下载AndroidSDKwgethttps://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip#解压unzipcommandlinetools-linux-7302050_latest.zip-dandroid......
  • 安卓读写文件的方法以及优劣分析
    文章摘要在Android开发中,数据的存储和读取是应用程序中常见的操作之一。本文将详细介绍Android中读写文件的方法,并对其优劣进行分析。同时,将附上相应的实现代码,以便读者更好地理解。正文使用Java的IO流在Android中,我们可以使用Java的文件IO类来读取和写入本地文件系统......
  • 安卓的KEY_press_keycode
    key={'0':7,'1':8,'2':9,'3':10,'4':11,'5':12,'6':13,'7':14,'8':15,'9':16,'A':29,'B':30,'C':31,'D':32,'E':3......
  • 安卓开发-获取手机信息
    在安卓App开发中,自动获取手机信息是一项常见的功能,它可以为用户提供更好的服务和更好的用户体验。下面我们来介绍一下自动获取手机信息的原理和具体的实现方法。自动获取手机信息的原理:在安卓系统中,有很多内置的类和方法可以获取手机的基本信息,如:Build、TelephonyManager、Wif......
  • 安卓Wifimanager.getConfiguredNetworks()返回null的解决方法
    修改AndroidManifest.xml文件,添加以下权限;<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permissionandroi......