Elementy sterujące

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.

Niestandardowe pozycje elementów sterujących

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.

  1. Utwórz widok Androida za pomocą niestandardowego elementu interfejsu lub ViewGroup.
  2. Dodaj plik XML lub utwórz instancję widoku niestandardowego, aby pobrać instancję widoku do dodania jako nagłówek dodatkowy.
  3. Użyj właściwości NavigationView.setCustomControl lub NavigationFragment.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.

  1. Utwórz widok Androida z elementem interfejsu lub grupą widoków, które chcesz dodać.
  2. Utwórz widok lub fragment nawigacji.
  3. 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);