Android Navigation 使用[亲测有效]

Android Navigation 使用[亲测有效]在Androidstudio里新建BottomNavigationActivity时会自动生成底部有三个按钮的导航栏页面如何新增自己的Fragment1.新建一个Fragment页面2.在res-navigation下mobile_navigation.xml下新增一个fragment标签<?xmlversion=”1.0″encoding=”utf-8″?><navigationxmlns:android=”http://schemas.a

大家好,欢迎来到IT知识分享网。

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

image.png

image.png

如何新增自己的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
    )
)

效果

image.png

注意:

  1. bottom_nav_menu.xml 下的item id需要和 mobile_navigation.xml 下的fragment id一致
  2. APP主题不能是 Theme.MaterialComponents.Light.NoActionBar 否则会报错 Attempt to invoke virtual method ‘void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)’ on a null object reference
  3. 默认显示的fragment 可以在 mobile_navigation.xml 下修改 startDestination

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

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信