原创声明:本文所有图片和代码皆由本人制作和编写。
前言
这篇文章是边写大作业边查资料边写的,查了很多资料,翻了很多论坛,也遇到了很多bug。我怕写完了就忘记怎么写的,答辩的时候被问懵,所以还是记录一下我的编写过程。
本文仅涉及最简BottomNavigation使用方法,适合用于刚接触安卓的新手。
目标效果
第0步 导入库
// navigation
implementation "androidx.navigation:navigation-fragment:2.3.0-alpha02"
implementation "androidx.navigation:navigation-ui:2.3.0-alpha02"
第1步 准备好一些资源
fragment
我的大作业用了3个页面切换,所以创建3个Fragment:
drawable图标
第一小步
第二小步
第二步 创建menu
选这个:
第三步 创建navigation
和menu的创建一样,然后:
注意
然后需要在main_xml自动生成的代码添加2句语句,不然app会闪退。
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