Za pomocą niestandardowych elementów sterujących możesz dodawać własne elementy interfejsu do widoku nawigacji. Pakiet Navigation SDK automatycznie zmienia położenie niestandardowych elementów sterujących wraz ze zmianą układu wbudowanego.
Dla każdej pozycji możesz ustawić jeden niestandardowy element sterujący. Element niestandardowy może składać się z 1 elementu interfejsu. Jeśli Twój projekt wymaga więcej, możesz użyć elementu ViewGroup
z wieloma elementami interfejsu.
Metoda setCustomControl
podaje pozycje zgodnie z definicją za pomocą wyliczenia CustomControlPosition
:
SECONDARY_HEADER
(wyświetla się tylko w trybie pionowym)BOTTOM_START_BELOW
BOTTOM_END_BELOW
Na grafice poniżej widać przykłady poszczególnych pozycji w miejscu elementu sterującego interfejsu, który informuje kierowcę o lokalizacji pasażera.
Dodaj niestandardową opcję pod nagłówkiem głównym
Domyślnie układy wyświetlają pod głównym nagłówkiem widok strzałki lub informacje o pasie ruchu. Aplikacja może zastąpić układ domyślny niestandardowym elementem sterującym ustawionym w pozycji dodatkowego nagłówka. Ta opcja zastępuje domyślną zawartość na górze widoku nawigacji. Jeśli widok ma tło, pozostaje ono na swoim miejscu. Gdy aplikacja usunie niestandardowe treści, w ich miejscu pojawi się treść domyślna.
To miejsce znajduje się pod nagłówkiem mapy, a górna krawędź jest wyrównana z dolną krawędzią nagłówka głównego. Domyślny nagłówek dodatkowy jest ukryty. Ta pozycja jest obsługiwana tylko w portrait mode
. W landscape mode
dodatkowy nagłówek jest niedostępny, a układ się nie zmienia.
- Utwórz widok Androida za pomocą niestandardowego elementu interfejsu lub ViewGroup.
- Dodaj plik XML lub utwórz instancję widoku niestandardowego, aby pobrać instancję widoku do dodania jako nagłówek dodatkowy.
Użyj właściwości
NavigationView.setCustomControl
lubNavigationFragment.setCustomControl
z opcją CustomControlPosition jako SECONDARY_HEADER.W przykładzie poniżej tworzymy fragment i dodaje on niestandardową opcję kontroli w pozycji dodatkowego nagłówka.
mNavFragment.setCustomControl(getLayoutInflater(). inflate(R.layout.your_custom_control, null), CustomControlPosition.SECONDARY_HEADER);
Usuwanie dodatkowego nagłówka
Jeśli chcesz usunąć dodatkowy nagłówek i przywrócić domyślną treść, użyj metody setCustomControl
.
Aby go usunąć, ustaw wartość widoku na wartość null.
mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
Dodaj niestandardową opcję u góry widoku nawigacji
Aplikacja może mieć niestandardowy element sterujący wyrównany do dolnej krawędzi widoku. Gdy aplikacja doda niestandardowy element sterujący, przycisk wyśrodkuj ekran i logo Google przesuwają się w górę, aby dopasować się do ustawień niestandardowych.
- Utwórz widok Androida z elementem interfejsu lub grupą widoków, które chcesz dodać.
- Utwórz widok lub fragment nawigacji.
- Wywołaj metodę
setCustomControl
w widoku lub fragmencie nawigacji i określ element sterujący oraz pozycję, która ma być używana.
Ten przykład pokazuje niestandardową View
dodaną do NavigationFragment
:
private NavigationFragment mNavFragment;
mNavFragment = (NavigationFragment)
getFragmentManager().findFragmentById(R.id.navigation_fragment);
// Create the custom control view.
MyCustomView myCustomView = new MyCustomView();
// Add the custom control to the bottom end corner of the layout.
mNavFragment.setCustomControl(myCustomView, CustomControlPosition.
BOTTOM_END_BELOW);
Usuwanie elementu sterującego niestandardowego
Aby usunąć element sterujący, użyj metody setCustomControl
i określ pozycję elementu, który chcesz usunąć.
Ustaw widok na
null
dla tej pozycji.mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);