Android NavigationComponent:导航抽屉没有反应

时间:2019-08-22 02:34:44

标签: java android navigation-drawer android-architecture-navigation

我正在尝试使用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);
   }

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

1 个答案:

答案 0 :(得分:2)

按照ActionBar section of that same page

  

接下来,重写onSupportNavigateUp()以处理向上导航:

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

请注意,您创建的AppBarConfiguration在类级别也必须是变量,以便可以在setupNavigation()onSupportNavigateUp()中使用。