I have an app with a navigation drawer and 4 navigation items (Fragments). In one of the Fragments, I have a tab layout set up with a view pager (3 more Fragments).
From one of these inner fragments, I want to disable/enable the navigation drawer dynamically. Basically, on a button press, I want to restrict access to the navigation drawer (and the re-enable on pressing it again).
How would I do it?
I tried accessing the DrawerLayout
of the parent activity from this inner fragment. But I see no methods to enable/disable the navigation drawer.
The way I've added the drawer to my main Activity:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
(and of course I've added toggle.syncState()
from within the onPostCreate
method.
setDrawerLockMode()
for theDrawerLayout
, andsetDrawerIndicatorEnabled()
for theActionBarDrawerToggle
. – IlluminancesetDrawerLockMode()
stopped the swiping-gesture. But to setsetDrawerIndicatorEnabled()
, how do I accessActionBarDrawerToggle
from within my Fragment? – Spiltinterface
that the Activity implements, where theinterface
's method in the Activity calls those above-mentioned methods. – IlluminancegetActivity()
to yourinterface
. – Illuminance