Navigationsschublade deaktivieren, Home-Button / Up-Indikator fragmentarisch umschalten
Ich habe eine Aktivität, deren contentView eine Instanz von a istDrawerLayout
, in der eine Navigationsleiste mit einer Schubladenanzeige in der Aktionsleiste angezeigt wird. Die Aktivität enthält aFragment
Nennen wir esListFragment
, die eine Liste von Optionen enthält. Wenn eine Option angeklickt wird, ersetze ich dieListFragment
mit einerDetailFragment
.
An dieser Stelle möchte ich anstelle der Navigationsschubladenanzeige eine Aufwärtsnavigationsoption anzeigen. Ich kann das Symbol "Nach oben" anzeigen, wenn ich die Schubladenanzeige durch einen Anruf deaktivieremDrawerToggle.setDrawerIndicatorEnabled(false)
Hierdurch wird jedoch nur das Schubladensymbol entfernt, nicht jedoch die Funktionalität. Wenn ich also auf die Einfügemarke klicke, wird die Navigationsschublade immer noch geöffnet.
Außerdem möchte ich in diesen Unteransichten das Öffnen der Schublade deaktivieren, indem ich vom Rand des Bildschirms ziehe. Ich habe versucht, dies durch einen Anruf zu tunsetDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
aber es scheint nicht diese Funktionalität deaktiviert zu haben.
Ich habe versucht, das zu erweiternActionBarDrawerToggle
Klasse, um das Öffnen der Schublade zu verhindern, wenn auf den Indikator geklickt wird. Es wird jedoch nur die überschreibende Aktion (die Aufwärtsnavigation) ausgeführt, jedoch die Schubladeöffnet immer noch.
Ich habe auch die Schritte in implementiertWechseln zwischen dem Android Navigation Drawer-Bild und dem Up Caret, wenn Fragmente verwendet werden . Es funktioniert so weit wie die Anzeige des Einfügemarke geht, aber trotz Überschreiben der Funktion der Aufwärtstaste wird das Menü weiterhin geöffnet (die App navigiert zurück - es öffnet nur auch die Schublade).
FrageAlso, lange Rede kurzer Sinn: Gibt es einen (am besten sauberen und eleganten, aber an diesem Punkt werde ich mit hacky gehen) Weg, um diese Dinge zu erreichen, wenn meine Layoutwurzel a ist?DrawerLayout
:
mDrawerToggle.setDrawerIndicatorEnabled(false))
Verhindern Sie, dass sich die Schublade öffnet, wenn auf das Caret geklickt wird, und überschreiben Sie es stattdessen mit meiner eigenen "Auf" -FunktionalitätVerhindern Sie, dass sich die Schublade öffnet, wenn ich vom Bildschirmrand ziehe.BearbeitenOkay, es sieht so aus, als ob ich beide außer Kraft setzen würdeActionBarDrawerToggle
UNDonOptionsItemSelected
öffnet sich das Menü nicht, wenn ich auf das Caret klicke. Aber es öffnet sich immer noch, wenn ich vom Rand ziehe. Hilfe!