与所有活动共享导航视图



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

在列表器中:onNavigationItemSelected setNavigationItemSelectedListener我们可以获取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添加/替换Fragment,但是处理片段和内存管理是一个很大的痛苦。

相反,我希望每个menuItem选择/单击以调用Activity,即每个MainMenuItem都有Activity,并且这些将包含具有复杂布局的片段。

我想做的只是让每个主菜单项都成为Activity而不是 Fragment .

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

这是推荐的方法吗?还是我们总是为NavigationDrawer项目点击添加Fragments

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

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

我用这个SO答案找到了答案

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

我在这里也有点困惑。 在找到很少的信息后,我试图扩展我的子类

public class NewActivity extends MainActivity{
     ...
}

然而,仅凭这一点并没有起到任何作用。 MainActivity有一个功能齐全的NavigationView,将导航到每个活动。唯一剩下的就是与每个活动共享它。

相关内容

  • 没有找到相关文章

最新更新