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

3
我已经成功地实现了带有fragment的导航抽屉,现在我想要实现不使用自定义工具栏(使用AppTheme==DarkActionbar)的导航抽屉。但是我无法在没有自定义工具栏的情况下做到这一点。我已经查看了许多博客和教程,但是没有得到我想要的解决方案。
如果有人能帮助我解决问题,那将对我非常有帮助。
注意:我没有使用Navigation Controller,我使用的是旧方法添加Drawer和DrawerActiobarToogle等。

你可以开始使用.NoActionBar主题。 - Gabriele Mariotti
1个回答

0

如果你只是想摆脱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);

您可以像上面那样设置navigationView。就这样。不要像下面那样设置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


谢谢您的回答,对我很有帮助。导航控制器是我的问题的解决方案,很好。但是如果我们使用旧方法而不是控制器呢? - Harsh Patel
@HarshPatel 如果没有NavigationUI,您将使用navigationView.setNavigationItemSelectedListener(listener);并实现NavigationView.OnNavigationItemSelectedListener,在其中定义使用FragmentManager替换Fragment。 - hata

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接