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

时间:2021-05-05 05:18:25

标签: android navigation-drawer material-components-android

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

如果有人能帮我解决我的问题,那对我会很有帮助。

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

1 个答案:

答案 0 :(得分:0)

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

或者,如果您已经了解主题并且想在没有 Toolbar 的情况下使用 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);
}

screenshot