与所有活动共享NavigationView?

我们如何与所有的活动共享Drawer

在lister: onNavigationItemSelectedsetNavigationItemSelectedListener我们可以得到id导航到它。 我正在寻找的东西是这样的:

 private void initDrawerLayout() { drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navView = (NavigationView) findViewById(R.id.navigation_view); navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { Intent intent; int id = menuItem.getItemId(); switch(id) { case R.id.home: case R.id.drawer_home: // call activity instead of adding/replacing fragment return true; case R.id.drawer_gallery: // call activity instead of adding/replacing fragment intent = new Intent(MainActivity.this, GalleryActivity.class); startActivity(intent); return true; case R.id.drawer_about: // call activity instead of adding/replacing fragment intent = new Intent(MainActivity.this, AboutActivity.class); startActivity(intent); return true; ... } ... 

我知道我可以使所有的menuItems项添加/replaceFragment ,但是然后处理片段和内存pipe理是一个很大的痛苦。

相反,我希望每个menuItemselect/单击来调用Activity 。 即每个MainMenuItemActivity和那些将持有片段与复杂的布局。

我想要做的就是让每个主菜单项都是一个Activity而不是一个Fragment

而所有这些活动都可以共享相同的DrawerNavigation

这是推荐的方式吗? 或者我们总是添加FragmentsNavigationDrawer项目点击??

我应该将NavigationView添加到BaseActivity ,然后从那里扩展所有活动?

遵循这个关于支持devise库的新指南

Solutions Collecting From Web of "与所有活动共享NavigationView?"

我用这个答案find答案

扩展是正确的方法。 只需以正确的方式覆盖setContentView …

我也有点困惑。 在find很less的信息后,我试图扩展我的子类

 public class NewActivity extends MainActivity{ ... } 

但是,这本身并没有做任何事情。 MainActivity有一个全function的NavigationView MainActivity ,将导航到每个活动..只剩下的事情是与每个活动分享。