Mit benutzerdefinierten Steuerelementen können Sie Ihrer Navigationsansicht eigene UI-Elemente hinzufügen. Das Navigation SDK positioniert Ihre benutzerdefinierten Steuerelemente automatisch neu, wenn sich das integrierte Layout ändert.
Sie können für jede Position ein benutzerdefiniertes Steuerelement festlegen. Das benutzerdefinierte Steuerelement kann ein UI-Element sein. Wenn Ihr Design mehr erfordert, können Sie ein ViewGroup
mit mehreren UI-Elementen verwenden.
Die Methode setCustomControl
stellt Positionen bereit, die in CustomControlPosition
-Enum definiert sind:
SECONDARY_HEADER
(nur im Hochformat)BOTTOM_START_BELOW
BOTTOM_END_BELOW
In der folgenden Abbildung sehen Sie Beispiele für jede Position in der Platzierung eines UI-Steuerelements, das den Fahrer über den Standort eines Fahrgasts informiert.
Fügen Sie ein benutzerdefiniertes Steuerelement unter dem primären Header hinzu
Standardmäßig wird in Layouts der Pfeil Dann oder Spurführung unter dem primären Titel angezeigt. Ihre Anwendung kann das Standardlayout durch ein benutzerdefiniertes Steuerelement in der Position des sekundären Headers ersetzen. Dieses Steuerelement ersetzt den Standardinhalt oben in der Navigationsansicht. Wenn die Ansicht einen Hintergrund hat, bleibt dieser erhalten. Wenn Ihre App die benutzerdefinierten Inhalte entfernt, werden an ihrer Stelle die Standardinhalte angezeigt.
Diese Position befindet sich unterhalb des primären Kartenheaders, wobei der obere Rand am unteren Rand des primären Headers ausgerichtet ist. Der standardmäßige sekundäre Header ist ausgeblendet. Diese Position wird nur in portrait mode
unterstützt. In landscape mode
ist der sekundäre Header nicht verfügbar und das Layout ändert sich nicht.
- Erstellen Sie eine Android-Ansicht mit dem benutzerdefinierten UI-Element oder ViewGroup.
- Entpacken Sie den XML-Code oder instanziieren Sie die benutzerdefinierte Ansicht, um eine Instanz der Ansicht abzurufen, die als sekundärer Header hinzugefügt werden soll.
Verwenden Sie
NavigationView.setCustomControl
oderNavigationFragment.setCustomControl
mit CustomControlPosition als SECONDARY_HEADER.Im folgenden Beispiel wird ein Fragment erstellt und an der Position des sekundären Headers wird ein benutzerdefiniertes Steuerelement hinzugefügt.
mNavFragment.setCustomControl(getLayoutInflater(). inflate(R.layout.your_custom_control, null), CustomControlPosition.SECONDARY_HEADER);
Sekundären Header entfernen
Wenn Sie den sekundären Header entfernen und zum Standardinhalt zurückkehren möchten, verwenden Sie die Methode setCustomControl
.
Legen Sie die Ansicht auf null fest, um die Ansicht zu entfernen.
mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
Benutzerdefiniertes Steuerelement oben in der Navigationsansicht hinzufügen
Für Ihre App kann ein benutzerdefiniertes Steuerelement angegeben werden, das am unteren Rand der Ansicht ausgerichtet ist. Wenn das benutzerdefinierte Steuerelement in Ihrer App hinzugefügt wird, verschieben sich die Schaltfläche „Neu zentrieren“ und das Google-Logo nach oben, um das benutzerdefinierte Steuerelement zu berücksichtigen.
- Erstellen Sie eine Android-Ansicht mit dem UI-Element oder der Ansichtsgruppe, die Sie hinzufügen möchten.
- Erstellen Sie die Navigationsansicht oder das Fragment.
- Rufen Sie die Methode
setCustomControl
in der Navigationsansicht oder dem Fragment auf und geben Sie das Steuerelement und die zu verwendende Position an.
Das folgende Beispiel zeigt eine benutzerdefinierte View
, die einer NavigationFragment
hinzugefügt wurde:
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);
Benutzerdefiniertes Steuerelement entfernen
Wenn Sie das benutzerdefinierte Steuerelement entfernen möchten, verwenden Sie die Methode setCustomControl
und geben Sie die Position des zu entfernenden Steuerelements an.
Setzen Sie die Ansicht für diese Position auf
null
.mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);