Android 导航组件:导航抽屉没有反应

Android NavigationComponent: Navigation Drawer not reacting

我正在尝试使用 Android jetpack 中的新导航组件来创建导航抽屉。出于某种原因,相应的汉堡包按钮确实出现在屏幕上,但对点击根本没有反应。

我尝试了几个在线教程,但都无济于事。我最后尝试的是 https://developer.android.com/guide/navigation/navigation-ui.

的官方方法

MainActivity.java:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        setupNavigation();
    }

    private void setupNavigation() {
        drawer = findViewById(R.id.drawer_layout);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);


        navController = Navigation.findNavController(this, R.id.nav_host_fragment);


        AppBarConfiguration appBarConfiguration =
                new AppBarConfiguration.Builder(navController.getGraph())
                        .setDrawerLayout(drawer)
                        .build();
        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);


        NavigationView navView = findViewById(R.id.nav_view);
        NavigationUI.setupWithNavController(navView, navController);
   }

我不明白为什么它对点击根本没有反应。

根据 ActionBar section of that same page:

Next, override onSupportNavigateUp() to handle Up navigation:

override fun onSupportNavigateUp(): Boolean {
    return NavigationUI.navigateUp(navController, appBarConfiguration)
        || super.onSupportNavigateUp()
}

请注意,您创建的 AppBarConfiguration 也需要是 class 级别的变量,因此它可以在 setupNavigation()onSupportNavigateUp() 中使用。