大家好,欢迎来到IT知识分享网。
在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
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24185.html