How do we share Drawer
with all the activities?
In the lister: onNavigationItemSelected
of setNavigationItemSelectedListener
we can get the id
and navigate to it. What I am looking for is something like this:
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;
...
}
...
I know I can make all the menuItems
add/replace Fragment
, but then handling fragments and memory management is a big pain.
Instead I want each menuItem
select/click to invoke Activity
. i.e. each MainMenuItem
to have Activity
and those will hold fragments with complex layouts.
All I want to do is have each main menu item be an
Activity
instead of aFragment
.And all these activities can share same
DrawerNavigation
.
Is this the recommended way? Or do we always add Fragments
for NavigationDrawer
item clicks??
Should I add NavigationView
to BaseActivity
and then extend all activities from there??
I am a bit confused here as well. After finding very little information on this I tried to extend my subclass
However, this alone didn't do anything. the
MainActivity
has a fully functioningNavigationView
that will navigate to each activity..Only thing that is left is sharing it with each activity.