Ich habe eine App mit einer Navigationsleiste und 4 Navigationspunkten (Fragmente). In einem der Fragmente habe ich ein Tab-Layout eingerichtet mit einem View-Pager (3 weitere Fragmente).Deaktivieren der Navigationsschublade von Fragment
Von einem dieser inneren Fragmente möchte ich die Navigationsleiste dynamisch deaktivieren/aktivieren. Grundsätzlich möchte ich bei einem Tastendruck den Zugriff auf die Navigationsleiste einschränken (und bei erneutem Drücken wieder aktivieren).
Wie würde ich es tun?
Ich versuchte, von diesem inneren Fragment auf die DrawerLayout
der Elternaktivität zuzugreifen. Aber ich sehe keine Methoden zum Aktivieren/Deaktivieren der Navigationsleiste.
Die Art, wie ich die Schublade zu meiner Hauptaktivität hinzugefügt habe.
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);
(und natürlich habe ich toggle.syncState()
aus der onPostCreate
Methode hinzugefügt
Verwenden Sie 'setDrawerLockMode()' für 'DrawerLayout' und' setDrawerIndicatorEnabled() 'für' ActionBarDrawerToggle'. –
@MikeM. Das Setzen von 'setDrawerLockMode()' hat die Wischgeste gestoppt. Um 'setDrawerIndicatorEnabled()' zu setzen, wie kann ich innerhalb meines Fragments auf 'ActionBarDrawerToggle' zugreifen? – Roshnal
Im Idealfall sollten Sie dies über eine "Schnittstelle" ausführen, die die Aktivität implementiert, wobei die Methode "interface" in der Aktivität die oben genannten Methoden aufruft. –