没有自定义工具栏的导航抽屉

Navigation Drawer without custom toolbar

我已经实现了带片段的导航抽屉,这完全可以正常工作。现在我想在不使用自定义工具栏的情况下实现导航抽屉(使用 A​​ppTheme== DarkActionbar)。如果没有自定义工具栏,我将无法这样做。我已经浏览了很多博客和教程,但无法获得所需的解决方案。

如果有人可以帮助我解决我的问题,那将对我很有帮助。

注意:我没有为此使用导航控制器,我使用的是添加 Drawer 和 DrawerActiobarToogle 等的旧方法

如果你只是想放弃 ActionBar,就像@GabrieleMariotti 建议的那样,你可以使用任何 *.NoActionBar 主题。

或者,如果您已经了解主题并且想在没有工具栏的情况下使用 NavigationUI,那么有一个方法。

在您的 MainActivity 的 onCreate 中:

NavigationView navigationView = findViewById(R.id.nav_view);
navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupWithNavController(navigationView, navController);

您可以像上面那样设置导航视图。就这样。并且不要像下面这样设置 appBarConfiguration:

drawer = findViewById(R.id.drawer_layout);
appBarConfiguration = new AppBarConfiguration.Builder(
    R.id.fragment1, R.id.fragment2, R.id.fragment3
).setOpenableLayout(drawer).build();
NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);

因为你不需要工具栏,所以这是不必要的。

没有汉堡按钮,你仍然可以通过滑动打开抽屉。如果你想要一个汉堡包按钮,在布局上放置一个按钮,它被设置为打开抽屉的onClickListener。

FloatingActionButton fabNavigation = view.findViewById(R.id.fab_navigation);
fabNavigation.setOnClickListener(view1 -> onClick());

抽屉开启方法示例:

public void onClick(View view) {
    drawer.openDrawer(GravityCompat.START);
}