600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 导航组件—Android应用中使用底部导航栏BottomNavigationView

导航组件—Android应用中使用底部导航栏BottomNavigationView

时间:2023-12-23 21:42:34

相关推荐

导航组件—Android应用中使用底部导航栏BottomNavigationView

文章目录

一. 在Activity中使用底部导航栏BottomNavigationView步骤一:在菜单文件中定义底部导航菜单选项内容1.1 新建menu文件menu_bottom_nav.xml(src/main/res/menu/menu_bottom_nav.xml)1.2 构建menu_bottom_nav.xml(src/main/res/menu/menu_bottom_nav.xml)内容 步骤二:在activity布局文件中定义底部导航栏1.1 在activity布局文件activity_main.xml(src/main/res/layout/activity_main.xml)中定义BottomNavigationView1.2 进阶(非必要,可略过):为底部导航栏菜单的每个项目的图标(itemIcon)与标题(itemTextColor)设置点击的颜色变化 步骤三:在activity Java文件中定义底部导航栏选项的监听事件 二. 参考资料三. 结束语

一. 在Activity中使用底部导航栏BottomNavigationView

步骤一:在菜单文件中定义底部导航菜单选项内容

1.1 新建menu文件menu_bottom_nav.xml(src/main/res/menu/menu_bottom_nav.xml)
1.2 构建menu_bottom_nav.xml(src/main/res/menu/menu_bottom_nav.xml)内容

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="/apk/res/android"><!-- 设置首页选项的id,icon(图标),title(选项标题)--><itemandroid:id="@+id/item_bottomnav_home"android:icon="@drawable/ic_main_home_black_256"android:title="@string/home" /><!-- 设置消息选项的id,icon(图标),title(选项标题)--><itemandroid:id="@+id/item_bottomnav_message"android:icon="@drawable/ic_main_message_black_256"android:title="@string/message" /><!-- 设置通讯录选项的id,icon(图标),title(选项标题)--><itemandroid:id="@+id/item_bottomnav_addressbook"android:icon="@drawable/ic_main_addressbook_black_256"android:title="@string/addressbook" /><!-- 设置个人中心选项的id,icon(图标),title(选项标题)--><itemandroid:id="@+id/item_bottomnav_personalCenter"android:icon="@drawable/ic_main_personalcenter_black_256"android:title="@string/mine" /></menu>

其中src/main/res/values/strings.xml,src/main/res/drawable中的内容需要自己添加

步骤二:在activity布局文件中定义底部导航栏

1.1 在activity布局文件activity_main.xml(src/main/res/layout/activity_main.xml)中定义BottomNavigationView

<com.google.android.material.bottomnavigation.BottomNavigationViewandroid:id="@+id/bottomNavigationView_main"android:layout_width="match_parent"android:layout_height="@dimen/bottomNav_height_56"app:menu="@menu/menu_bottom_nav">

其中src/main/res/values/dimens.xml中的内容需要自己添加

1.2 进阶(非必要,可略过):为底部导航栏菜单的每个项目的图标(itemIcon)与标题(itemTextColor)设置点击的颜色变化

1.2.1 新建selector文件selector_bottomnav.xml(src/main/res/drawable/selector_bottomnav.xml)

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:color="@color/viewSelected" android:state_checked="true" /><item android:color="@color/grey_600" android:state_checked="false" /></selector>

其中src/main/res/values/colors.xml中的内容需要自己添加

1.2.2 在BottomNavigationView中引用selector_bottomnav.xml

<com.google.android.material.bottomnavigation.BottomNavigationViewandroid:id="@+id/bottomNavigationView_main"android:layout_width="match_parent"android:layout_height="@dimen/bottomNav_height_56"app:menu="@menu/menu_bottom_nav"app:itemIconTint="@drawable/selector_bottomnav"app:itemTextColor="@drawable/selector_bottomnav">

步骤三:在activity Java文件中定义底部导航栏选项的监听事件

// 为bottomNavigationViewMain设置监听事件setOnNavigationItemSelectedListener,onNavigationItemSelected,用于改变viewPager2Main的CurrentItembinding.bottomNavigationViewMain.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {@SuppressLint("NonConstantResourceId")@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {switch (item.getItemId()) {case R.id.item_bottomnav_home:// 点击底部导航home选项的响应事件binding.viewPager2Main.setCurrentItem(0);//本语句可替换为您自己的响应事件return true;case R.id.item_bottomnav_message:// 点击底部导航message选项的响应事件binding.viewPager2Main.setCurrentItem(1);//本语句可替换为您自己的响应事件return true;case R.id.item_bottomnav_addressbook:// 点击底部导航addressbook选项的响应事件binding.viewPager2Main.setCurrentItem(2);//本语句可替换为您自己的响应事件return true;case R.id.item_bottomnav_personalCenter:// 点击底部导航personalCenter选项的响应事件binding.viewPager2Main.setCurrentItem(3);//本语句可替换为您自己的响应事件return true;default:break;}return false;}});

本段代码中使用了视图绑定(binding)的功能,如想了解相关内容,请转至:

/weixin_44193930/article/details/121979673


二. 参考资料

https://developer./guide/navigation/navigation-ui


三. 结束语

本文档为博主自主学习Android应用开发过程中的经验总结与心得体会,希望能在读者的学习道路上帮上一点点小忙,共同学习,共同成长。

欢迎读者评论留言,点赞,收藏,分享!


本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。