java - Android导航组件2.1.0与java

标签 java android kotlin android-architecture-navigation

当我尝试在java上使用android导航组件时。它与开箱即用的抽屉导航配合得不好。除了从抽屉导航导航到 fragment 之外,我可以执行所有操作。 我正在开发一个项目,我需要快速摆脱困境,并希望使用我更有经验的 java 来完成它。有人能够破解这个吗?

implementation 'androidx.navigation:navigation-fragment:2.1.0'
implementation 'androidx.navigation:navigation-ui:2.1.0'

创建主 Activity

rootLayout = findViewById(R.id.drawer_layout);

    drawerLayout = findViewById(R.id.drawer_layout);

    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    NavHostFragment navHostFragment = (NavHostFragment)getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
    navController = navHostFragment.getNavController();

    mAppBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph())
            .setDrawerLayout(drawerLayout)
            .build();

    drawerLayout = findViewById(R.id.drawer_layout);

    //setup navigation
    NavigationView navigationView = findViewById(R.id.nav_view);
    NavigationUI.setupWithNavController(navigationView, navController);
    mAppBarConfiguration = new AppBarConfiguration.Builder(
            R.id.nav_home, R.id.nav_claims, R.id.nav_products,R.id.nav_deliveries, R.id.nav_quotes,
            R.id.nav_policies, R.id.nav_payment,R.id.nav_about,R.id.nav_contact)
            .setDrawerLayout(drawerLayout)
            .build();

    //setup action bar
    NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);

PS:mobile_navigation.xml和activity_main_drawer.xml上的id是相同的。所以没有问题。

最佳答案

发现问题了。这有点奇怪,但是哦,好吧...您需要确保 app_bar_main 的包含位于 Activity 中的 NavigationView 之前,例如 Activity_main

<include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<com.google.android.material.navigation.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"
    android:background="@color/colorAccent"
    app:itemTextColor="@android:color/white"
    app:itemIconTint="@android:color/white"
    android:fitsSystemWindows="false"
    android:isScrollContainer="true"
    android:saveEnabled="true"/>

关于java - Android导航组件2.1.0与java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58931015/

相关文章:

java - 如何将一种用户类型的列表复制到其他类型的列表?

java.lang.IllegalArgumentException : Object would be serialized to `null` : Android 异常

android - Crashlytics 未出现在 Firebase 中

gradle - 如何将 Kotlin 源码的测试报告上传到 Coveralls?

android - 如何在 RecyclerView Adapter 中使用 TextWatcher

Java - 扫描仪(System.in)和 "Blocking a thread"

Java:获取变量的最大值

java - 运行App时在Adapter类的getView中获取java.lang.NullPointerException

android - 无法在 android 12 和 13 中选择/传递图库视频的选定 URI,并且无法在选定的屏幕中查看

java - 从 Angular 2 向 Spring 支持的 Java 应用程序发送 POST 请求时出现 CSRF 问题