在Android studio里新建Bottom Navigation Activity时会自动生成底部有三个按钮的导航栏页面


如何新增自己的Fragment
1.新建一个Fragment 页面
2.在res-navigation 下mobile_navigation.xml下新增一个fragment标签
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mobile_navigation"
app:startDestination="@+id/navigation_home">
<fragment
android:id="@+id/navigation_home"
android:name="com.wewin.testkotlinapplication.lesson2.ui.home.HomeFragment"
android:label="@string/title_home"
tools:layout="@layout/fragment_home" />
<fragment
android:id="@+id/navigation_dashboard"
android:name="com.wewin.testkotlinapplication.lesson2.ui.dashboard.DashboardFragment"
android:label="@string/title_dashboard"
tools:layout="@layout/fragment_dashboard" />
<fragment
android:id="@+id/navigation_notifications"
android:name="com.wewin.testkotlinapplication.lesson2.ui.notifications.NotificationsFragment"
android:label="@string/title_notifications"
tools:layout="@layout/fragment_notifications" />
<fragment
android:id="@+id/navigation_my"
android:name="com.wewin.testkotlinapplication.lesson2.ui.my.MyFragment"
android:label="@string/my_text"
tools:layout="@layout/fragment_my"/>
</navigation>
3. 增加底部导航栏按钮
在res-menu下的bottom_nav_menu.xml下新增
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/title_home" />
<item
android:id="@+id/navigation_dashboard"
android:icon="@drawable/ic_dashboard_black_24dp"
android:title="@string/title_dashboard" />
<item
android:id="@+id/navigation_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/title_notifications" />
<item
android:id="@+id/navigation_my"
android:icon="@drawable/ic_sharp_person"
android:iconTint="@color/black"
android:title="@string/my_text"/>
</menu>
4.在AppBarConfiguration里将新加的导航id配置上
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications,R.id.navigation_my
)
)
效果

注意:
- bottom_nav_menu.xml 下的item id需要和 mobile_navigation.xml 下的fragment id一致
- APP主题不能是 Theme.MaterialComponents.Light.NoActionBar 否则会报错 Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
- 默认显示的fragment 可以在 mobile_navigation.xml 下修改 startDestination
本文介绍如何在Android Studio中为BottomNavigationActivity添加自定义的Fragment,包括修改navigation XML文件及底部菜单图标设置。
2774

被折叠的 条评论
为什么被折叠?



