In ihrer einfachsten Form zeigt die Aktionsleiste auf der einen Seite den Titel der Aktivität und auf der anderen ein Überlaufmenü an. Selbst in dieser einfachen Form bietet die App-Leiste nützliche Informationen für die Benutzer und trägt dazu bei, Android-Apps ein einheitliches Aussehen zu verleihen.
Abbildung 1. Eine App-Leiste mit dem App-Titel und dem Überlaufmenü.
Seit Android 3.0 (API-Level 11) haben alle Aktivitäten, die das Standardthema verwenden, eine ActionBar
als App-Leiste. Allerdings wurden dem nativen ActionBar
im Laufe der verschiedenen Android-Versionen nach und nach App-Bar-Funktionen hinzugefügt. Infolgedessen verhält sich die native ActionBar
unterschiedlich, je nachdem, welche Version des Android-Systems ein Gerät verwendet. Im Gegensatz dazu werden die neuesten Funktionen der Version von Toolbar
der Support-Bibliothek hinzugefügt und sind auf jedem Gerät verfügbar, das die Support-Bibliothek verwenden kann.
Aus diesem Grund sollten Sie die Klasse Toolbar
der Support-Bibliothek verwenden, um die App-Leisten Ihrer Aktivitäten zu implementieren. Die Verwendung der Symbolleiste der Unterstützungsbibliothek trägt dazu bei, dass Ihre Anwendung ein konsistentes Verhalten auf einer Vielzahl von Geräten aufweist. Das Toolbar
-Widget bietet beispielsweise ein Material-Design-Erlebnis auf Geräten mit Android 2.1 (API-Level 7) oder höher, aber die native Aktionsleiste unterstützt das Material-Design nur, wenn das Gerät mit Android 5.0 (API-Level 21) oder höher läuft.
Hinzufügen einer Symbolleiste zu einer Aktivität
Die folgenden Schritte beschreiben, wie Sie eine Toolbar
als App-Leiste Ihrer Aktivität einrichten:
- Fügen Sie die v7 appcompat-Support-Bibliothek zu Ihrem Projekt hinzu, wie in Support Library Setup beschrieben.
- Stellen Sie sicher, dass die Aktivität
AppCompatActivity
erweitert:Kotlin
class MyActivity : AppCompatActivity() { // ...}
Java
public class MyActivity extends AppCompatActivity { // ...}
Hinweis: Nehmen Sie diese Änderung für jede Aktivität in Ihrer Anwendung vor, die eine
Toolbar
als App-Leiste verwendet. - Stellen Sie im App-Manifest das
<application>
-Element so ein, dass eines derNoActionBar
-Themen von appcompat verwendet wird. Die Verwendung eines dieser Themen verhindert, dass die App die nativeActionBar
Klasse verwendet, um die App-Leiste bereitzustellen. Zum Beispiel:<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Fügen Sie ein
Toolbar
zum Layout der Aktivität hinzu. Der folgende Layout-Code fügt beispielsweise einToolbar
hinzu und verleiht ihm den Anschein, über der Aktivität zu schweben:<android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Siehe die Material Design-Spezifikation für Empfehlungen zur Höhe der App-Leiste.
Positionieren Sie die Symbolleiste oben im Layout der Aktivität, da Sie sie als Anwendungsleiste verwenden.
- Rufen Sie in der Methode
onCreate()
der Aktivität die MethodesetSupportActionBar()
der Aktivität auf und übergeben Sie die Symbolleiste der Aktivität. Diese Methode legt die Symbolleiste als Anwendungsleiste für die Aktivität fest. Zum Beispiel:Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Note that the Toolbar defined in the layout has the id "my_toolbar" setSupportActionBar(findViewById(R.id.my_toolbar))}
Java
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar);}
Ihre App hat jetzt eine einfache Aktionsleiste. Standardmäßig enthält die Aktionsleiste nur den Namen der App und ein Überlaufmenü. Das Optionsmenü enthält zunächst nur den Eintrag Einstellungen. Sie können der Aktionsleiste und dem Überlaufmenü weitere Aktionen hinzufügen, wie in Hinzufügen und Behandeln von Aktionen beschrieben.
Dienstprogramm-Methoden der App-Leiste verwenden
Sobald Sie die Symbolleiste als App-Leiste einer Aktivität festgelegt haben, können Sie auf die verschiedenen Dienstprogramm-Methoden zugreifen, die von der Klasse ActionBar
der Appcompat-Support-Bibliothek v7 bereitgestellt werden. Auf diese Weise können Sie eine Reihe nützlicher Dinge tun, wie das Ein- und Ausblenden der Anwendungsleiste.