598
Rozdział 14.
Grupowanie elementów
<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<group>
...
</group>
</menu>
Rozwiązanie to jest przydatne, gdy chcemy zastosować jakiś atrybut dla
całej grupy elementów. Na przykład aby wyróżnić w szufladzie element
wybrany przez użytkownika, można dodać do znacznika
<group>
atrybut
android:checkableBehavior
o wartości
”single”
. Ten sposób działania
szuflady jest przydatny, jeśli planujemy wyświetlanie ekranów poszczególnych
opcji jako fragmentów podmienianych aktywności, do której została
dodana szuflada nawigacyjna (w naszym przykładzie jest to aktywność
MainActivity
), gdyż ułatwia określenie obecnie wybranej opcji:
<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<group android:checkableBehavior=”single”>
...
</group>
</menu>
Wybrany element szuflady nawigacyjnej można domyślnie wyróżnić, dodając do
niego atrybut
android:checked
o wartości
”true”
. Poniższy przykład pokazuje,
w jaki sposób można wyróżnić element „Skrzynka odbiorcza”:
<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<group android:checkableBehavior=”single”>
<item
android:id=”@+id/nav_inbox”
android:icon=”@android:drawable/sym_action_email”
android:title=”@string/nav_inbox”
android:checked=”true” />
...
</group>
</menu>
Na następnej stronie pokażemy pełny kod definiujący cztery początkowe
elementy szuflady nawigacyjnej.
Tutaj umieszczamy wszystkie
elementy, które chcemy dodać
do grupy.
Użycie tej wartości atrybutu oznacza, że
w grupie będzie wyróżniona pojedyncza
opcja (ta, którą wybrał użytkownik).
Zastosowanie tego atrybutu
powoduje domyślne
wyróżnienie danego elementu
w szufladzie nawigacyjnej.
Jak można grupować elementy?
Oprócz dodawania do szuflady nawigacyjnej pojedynczych elementów można je
także dodawać w grupach. Grupy definiuje się przy użyciu znacznika
<group>
,
jak pokazano poniżej:
¨
Fragmenty i aktywności
¨
Nagłówek
¨
Opcje
¨
Szuflada
Szuflady nawigacyjne
599
jesteś tutaj
¨
Fragmenty i aktywności
¨
Nagłówek
¨
Opcje
¨
Szuflada
<?xml version=”1.0” encoding=”utf-8”?>
<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<group android:checkableBehavior=”single”>
<item
android:id=”@+id/nav_inbox”
android:icon=”@android:drawable/sym_action_email”
android:title=”@string/nav_inbox”
android:checked=”true” />
<item
android:id=”@+id/nav_drafts”
android:icon=”@android:drawable/ic_menu_edit”
android:title=”@string/nav_drafts” />
<item
android:id=”@+id/nav_sent”
android:icon=”@android:drawable/ic_menu_send”
android:title=”@string/nav_sent” />
<item
android:id=”@+id/nav_trash”
android:icon=”@android:drawable/ic_menu_delete”
android:title=”@string/nav_trash” />
</group>
</menu>
<xml>
</xml>
app/src/main
menu_nav.xml
KociCzat
res
menu
W ten sposób uporaliśmy się z pierwszą grupą opcji.
Kolejnymi zajmiemy się w dalszej kolejności.
Dodaj tę grupę i cztery umieszczone
w niej opcje do pliku zasobu menu,
aby zostały wyświetlone w szufladzie
nawigacyjnej.
Opcje pierwszej sekcji zostaną umieszczone w grupie
Kod zamieszczony
na tej stronie
dodaje do
szuflady
nawigacyjnej te
cztery opcje.
Opcje dla skrzynki odbiorczej, szkiców, wiadomości wysłanych oraz
kosza dodamy do naszego pliku zasobu menu w formie jednej grupy
i domyślnie wyróżnimy pierwszą z nich. Opcje te umieścimy w grupie,
ponieważ ekrany dla każdej z nich są fragmentami wyświetlanymi
w ramach aktywności
MainActivity
.
Poniżej przedstawiliśmy kodu menu; zaktualizuj swoją wersję pliku
menu_nav.xml, by była identyczna z naszą:
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.