9

我们如何Drawer与所有活动分享?

在 lister: onNavigationItemSelectedofsetNavigationItemSelectedListener我们可以得到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;
        ...
        }
        ...

我知道我可以进行所有的menuItemsadd/replace Fragment,但是处理片段和内存管理是一个很大的痛苦。

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

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

并且所有这些活动都可以共享DrawerNavigation

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

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

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

4

2 回答 2

2

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

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

于 2015-09-08T12:29:59.067 回答
0

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

public class NewActivity extends MainActivity{
     ...
}

然而,仅此一项并没有起到任何作用。具有MainActivity完整的功能NavigationView,可以导航到每个活动。唯一剩下的就是与每个活动共享它。

于 2015-06-20T19:52:34.123 回答