繁体   English   中英

如何在多个活动之间共享导航抽屉?

[英]How can I share a navigation drawer between multiple activities?

嗨,我正在为我的高中毕业做一个学校项目。 该项目由一个 Android 应用程序组成,其中的 MainActivity 是一个导航抽屉。 现在,我已经了解了关于这个论点的数千个问题,但所有的答案都是关于使用片段的。 我不想使用片段,那么如何在不同的 Activity 之间共享 Navigation Drawer?

注意:1) 我使用了 Android Studio 提供的股票导航抽屉。

2)我不想共享 MainActivity 的 Toolbar,而只想共享 Navigation Drawer。

谢谢。

您需要使用 Drawer 创建 BaseActivity 并且所有子活动都将扩展该 BaseActivity

public class BaseActivity extends AppCompatActivity  {    
    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(R.layout.activity_base);
        // Base activity view with navigation drawer

        mainContener = (RelativeLayout) findViewById(R.id.mainContener);
        // MainCOntener where you want to add your child activity view
        // with toolbar and all
        getLayoutInflater().inflate(layoutResID, mainLayout);


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setOnClickListener(this);

        findViewById(R.id.linearLayout_home).setOnClickListener(this);
        ...
        ...

        getDrawerData();
    }

     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_base);

    }


  }

并像这样创建子活动

public class Home extends BaseActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        }
    }

每次当 setContentView(); 从子活动调用该视图(或布局如 R.layout.home)将在 baseactivity 的 Contener(如 R.layout.base_activity)的 ViewGroup 中膨胀

有关更多信息,您可以使用 Google-IO 应用程序代码,他们也使用 BaseActivity 概念https://github.com/google/iosched

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM