614
Rozdział 14.
Zamykamy szufladę
Zamknięcie szuflady po naciśnięciu przycisku Wstecz
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
I to już wszystkie zmiany, które należy wprowadzić w kodzie aktywności
MainActivity
. Na kilku następnych stronach przedstawimy jej pełny kod.
app/src/main
MainActivity.java
KociCzat
java
com.hfad.kociczat
Jeśli szuflada nawigacyjna
jest obecnie otworzona,
to zamykamy.
W przeciwnym razie, jeśli szuflada jest
zamknięta, wywołujemy metodę onBackPressed()
klasy bazowej.
Ta metoda jest wywoływana po
naciśnięciu przycisku Wstecz.
I w końcu przesłonimy czynności wykonywane po naciśnięciu przycisku
Wstecz. Jeśli użytkownik naciśnie ten przycisk, kiedy szuflada nawigacyjna
będzie otworzona, zamkniemy ją. Jeśli natomiast szuflada już będzie
zamknięta, to naciśnięcie przycisku
Wstecz da standardowe rezultaty.
W celu obsługi przycisku
Wstecz zaimplementujemy w aktywności
metodę
onBackPressed()
, która jest wywoływana za każdym razem,
kiedy użytkownik naciśnie ten przycisk. Poniżej przedstawiliśmy kod tej
metody:
¨
Fragmenty i aktywności
¨
Nagłówek
¨
Opcje
¨
Szuflada
głupie pytania
Nie istnieją
P
: Czy zawartość szuflady musi być określana przy
użyciu widoku NavigationView?
O
:
Nie, jednak takie rozwiązanie jest
znacznie
prostsze. Przed
udostępnieniem biblioteki wsparcia wzornictwa powszechnie
stosowaną praktyką było wykorzystanie do tego widoku listy.
Wciąż można stosować takie rozwiązanie, jednak wymaga ono
napisania znacznie bardziej rozbudowanego kodu.
P
: Czy aktywność może zawierać więcej niż jedną
szufladę nawigacyjną?
O
:
Aktywność może zawierać po jednej szufladzie nawigacyjnej
dla każdej pionowej krawędzi układu. W celu dodania drugiej
szuflady do układu DrawerLayout trzeba dodać drugi widok
NavigationView poniżej pierwszego.

Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.