La désactivation de la navigation tiroir à partir de fragment

J'ai une application avec une navigation tiroir et 4 éléments de navigation (Fragments). Dans l'un des Fragments, j'ai un onglet mise en page avec pager (3 Fragments).

De l'un de ces intérieur des fragments, je veux désactiver/activer la navigation tiroir de manière dynamique. En gros, sur pression d'un bouton, je veux restreindre l'accès à la navigation drawer (tiroir et de le ré-activer en appuyant sur nouveau).

Comment aurais-je le faire?

J'ai essayé d'accéder à la DrawerLayout de l'activité parent de ce fragment. Mais je ne vois pas de méthodes pour activer/désactiver la navigation tiroir.

La façon dont je l'ai ajouté le tiroir de mon Activité principale:

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);

(et bien sûr j'ai ajouté toggle.syncState() de l'intérieur de la onPostCreate méthode.

Utilisation setDrawerLockMode() pour la DrawerLayout, et setDrawerIndicatorEnabled() pour la ActionBarDrawerToggle.
Réglage setDrawerLockMode() arrêté le glisser-geste. Mais pour définir setDrawerIndicatorEnabled(), comment puis-je accéder à ActionBarDrawerToggle de l'intérieur de mon Fragment?
Idéalement, vous devriez faire cela par le biais d'un interface que l'Activité met en œuvre, où l' interface'méthode dans l'Activité des appels à ces méthodes mentionnées ci-dessus.
Yep, j'ai essayé de le faire. Mais les choses se sont très compliqué, parce que je suis en train de le faire dans l'un des Fragments de la ViewPager d'un Onglet mise en page, qui à son tour est contenue dans un Fragment détenue par le principal de l'activité :-/ Si vous pouvez fournir des indices sur la façon de procéder (comme le pseudo-code? ou un code de base de la structure?), il serait vraiment génial
"Mais les choses se sont très compliqué, parce que je suis en train de le faire dans l'un des Fragments de la ViewPager d'un Onglet mise en page, qui à son tour est contenue dans un Fragment détenue par le principal de l'activité" - Qui n'est pas vraiment pertinent, comme le Fragment est encore attaché directement à l'Activité. Cast getActivity() à votre interface.

OriginalL'auteur Roshnal | 2016-03-27