我正在尝试使用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);
}
我不明白为什么它对点击完全没有反应。
答案 0 :(得分:2)
按照ActionBar section of that same page:
接下来,重写onSupportNavigateUp()以处理向上导航:
override fun onSupportNavigateUp(): Boolean {
return NavigationUI.navigateUp(navController, appBarConfiguration)
|| super.onSupportNavigateUp()
}
请注意,您创建的AppBarConfiguration
在类级别也必须是变量,以便可以在setupNavigation()
和onSupportNavigateUp()
中使用。