Wyłączanie szuflady nawigacyjnej, przełączanie fragmentów na przycisk domowy / wskaźnik do góry
Mam działanie, którego contentView jest instancją aDrawerLayout
, która ma szufladę nawigacyjną ze wskaźnikiem szuflady wyświetlanym na pasku akcji. Działanie zawiera aFragment
, nazwijmy toListFragment
, który zawiera listę opcji. Po kliknięciu opcji zastępujęListFragment
zDetailFragment
.
W tym momencie chciałbym wyświetlić opcję nawigacji „w górę” zamiast wskaźnika szuflady nawigacyjnej. Mogę wyświetlić ikonę „w górę”, jeśli wyłączę wskaźnik szuflady, dzwoniącmDrawerToggle.setDrawerIndicatorEnabled(false)
, ale to usuwa tylko ikonę szuflady - nie usuwa funkcjonalności - to znaczy, gdy kliknę na daszek, szuflada nawigacyjna jest nadal otwarta.
Dodatkowo, w tych widokach, chciałbym wyłączyć otwieranie szuflady, przeciągając z krawędzi ekranu. Próbowałem to zrobić, dzwoniącsetDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
ale wydaje się, że ta funkcja nie została wyłączona.
Próbowałem rozszerzyćActionBarDrawerToggle
klasa, aby zapobiec otwarciu szuflady po kliknięciu wskaźnika - wszystko, co się dzieje, to wykonanie akcji nadrzędnej (nawigacja „w górę”), ale szufladawciąż się otwiera.
Wprowadziłem również kroki wPrzełączanie między obrazem szuflady nawigacji Android i Up Caret podczas używania fragmentów . Działa tak, jak wyświetla się daszek, ale pomimo nadpisania funkcjonalności przycisku „w górę”, menu nadal się otwiera (aplikacja nawiguje z powrotem - po prostu otwiera szufladę).
PytanieKrótko mówiąc: czy istnieje jakiś (najlepiej czysty i elegancki, ale w tym momencie pójdę hacky) sposób, aby osiągnąć te rzeczy, gdy mój katalog główny jestDrawerLayout
:
mDrawerToggle.setDrawerIndicatorEnabled(false))
Zapobiegaj otwieraniu szuflady po kliknięciu kursora i zamiast tego nadpisuj moją własną funkcjonalność „w górę”Zapobiegaj otwarciu szuflady, gdy przeciągam ją od krawędzi ekranu.EdytowaćW porządku, wygląda na to, że oboje zastąpięActionBarDrawerToggle
IonOptionsItemSelected
, menu nie otwiera się po kliknięciu kursora. Ale nadal otwiera się, jeśli przeciągnę od krawędzi. Wsparcie!