Elementy sterujące

Za pomocą niestandardowych elementów sterujących możesz dodawać do widoku nawigacji własne elementy interfejsu. 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ć 1 element sterujący niestandardowego. Element sterujący może być 1 elementem interfejsu lub, jeśli Twój projekt wymaga większej liczby elementów, możesz użyć ViewGroup z wieloma elementami interfejsu.

Metoda setCustomControl zapewnia pozycje zgodnie z definicją w wyliczeniu CustomControlPosition:

  • SECONDARY_HEADER (wyświetlany tylko w trybie pionowym)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

Na ilustracji poniżej widać przykłady każdej pozycji w miejscu elementu sterującego interfejsu informującego kierowcę o lokalizacji pasażera.

Niestandardowe pozycje elementów sterujących

Dodaj element sterujący niestandardowy pod nagłówkiem głównym

Domyślnie pod głównym nagłówkiem w układach jest wyświetlana strzałka Następnie lub wskazówki pasa ruchu. Twoja aplikacja może zastąpić domyślny układ układem niestandardowym ustawionym w dodatkowym położeniu nagłówka. Ten element sterujący zastępuje domyślną zawartość widoku nawigacyjnego. Jeśli widok ma tło, pozostanie ono na swoim miejscu. Gdy aplikacja usunie niestandardową treść, zostanie w niej widoczna treść domyślna.

Ta pozycja znajduje się pod nagłówkiem mapy głównej, a górna krawędź jest wyrównana do dolnej krawędzi nagłówka głównego. Domyślny nagłówek dodatkowy jest ukryty. Ta pozycja jest obsługiwana tylko w języku portrait mode. W landscape mode nagłówek dodatkowy jest niedostępny, a układ się nie zmienia.

  1. Utwórz widok Android View z niestandardowym elementem interfejsu użytkownika lub grupą widoków danych.
  2. Powiększ plik XML lub utwórz instancję widoku niestandardowego, aby uzyskać instancję widoku do dodania jako nagłówek dodatkowy.
  3. Użyj właściwości NavigationView.setCustomControl lub NavigationFragment.setCustomControl z elementem CustomControlPosition jako SECONDARY_HEADER.

    Poniższy przykład tworzy fragment i dodaje niestandardową opcję 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 wrócić do treści domyślnej, użyj metody setCustomControl.

  • Aby go usunąć, ustaw widok na null.

    mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
    

Dodaj element sterujący niestandardowy do widoku nawigacyjnego

W aplikacji możesz określić element sterujący niestandardowy wyrównany do dolnej krawędzi widoku. Gdy aplikacja doda element sterujący, przycisk ponownego wyśrodkowania i logo Google przesuwają się w górę zgodnie z tym ustawieniem.

  1. Utwórz widok Androida z elementem interfejsu lub grupą widoków, którą chcesz dodać.
  2. Utwórz widok nawigacyjny lub fragment.
  3. Wywołaj metodę setCustomControl w widoku lub fragmencie nawigacyjnym oraz określ element sterujący i pozycję do użycia.

Ten przykład pokazuje niestandardowy element View dodany do elementu 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 niestandardowe, użyj metody setCustomControl i określ pozycję elementu sterującego, który chcesz usunąć.

  • Dla tej pozycji ustaw widok na null.

    mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);