1.主布局

<?xml version="1.0" encoding="utf-8"?>                    

BottomNavigationView:底部导航视图,通过menu指定导航菜单,即导航ID、图标、标题

fragment:导航切换的Fragment占位符,通过navGraph指定了导航规则,即ID与Fragment实现类的映射

 

2.导航菜单布局

<?xml version="1.0" encoding="utf-8"?>            

可以看到每个导航菜单包含了导航的ID、图标、标题

 

3.导航规则

<?xml version="1.0" encoding="utf-8"?>                    

每个导航规则都包含了导航ID与一个Fragment类的映射,此处的ID与菜单的ID一致

 

4.主Activity

/** * 主页面,用于分类查看功能 */public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /* 主页布局 */        setContentView(R.layout.activity_main);        /* 获取底部导航栏视图 */        BottomNavigationView navView = findViewById(R.id.nav_view);        /* AppBar配置 */        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications).build();        /* 从Fragment获取导航控制器,navGraph定义了导航规则 */        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);        /* 为AppBar设置导航控制器,监听导航改变事件,修改标题 */        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);        /* 为视图设置导航控制器,即监听视图的点击事件 */        NavigationUI.setupWithNavController(navView, navController);    }}

NavController为导航控制器,里面包含了导航规则,是导航的中枢

NavigationUI.setupActionBarWithNavController,设置NavController导航改变的监听事件,修改页面标题栏

NavigationUI.setupWithNavController,设置触发导航改变的事件,当底部导航栏被点击时触发导航

 

更多相关文章

  1. Android材料设计兼容函数库(Design Support Library)(I)导航视图(Navi
  2. Android(安卓)ListView适配器BaseAdapter中getItemViewType需要
  3. [有梦想的IT人] Android优秀的动画库
  4. Android(安卓)OOM-Heap,MAT工具检测内存泄露
  5. Android自定义控件之基本原理(一)
  6. Android(安卓)studio APP开发 ListView控件的建立和使用
  7. Android数据读取之Sqlite数据库操作
  8. Android实现dialog的3D翻转
  9. Android: StrictMode介绍

随机推荐

  1. android 动画
  2. 发现 developer.android.com 官网的一个
  3. 'xlargeScreens' in package 'android'
  4. Android核心分析(21)----Android应用框架之
  5. Android(安卓)版本兼容 — Android(安卓)
  6. Android(安卓)Studio(一):介绍、安装、配
  7. 2010.12.10(2)——— android 使用地图
  8. JS与Android(安卓)WebView的简单交互 + W
  9. Linux系统查看磁盘可用空间的5个命令
  10. localStorage改变背景颜色和字体大小