In ihrer einfachsten Form zeigt die Aktionsleiste auf einer Seite den Titel für die Aktivität und auf der anderen Seite ein Überlaufmenü an. Auch in dieser einfachen Form bietet die App-Leiste Nutzern nützliche Informationen und sorgt für ein einheitliches Erscheinungsbild von Android-Apps.
Alle Aktivitäten, für die das Standarddesign verwendet wird, haben eine ActionBar als App-Leiste. Die Funktionen der App-Leiste werden im Laufe der verschiedenen Android-Releases in die native ActionBar aufgenommen. Daher verhält sich die native ActionBar je nach Android-Version des Geräts unterschiedlich.
Andererseits werden der AndroidX AppCompat-Bibliotheksversion von Toolbar Funktionen hinzugefügt, die dann auf Geräten verfügbar sind, auf denen die AndroidX-Bibliotheken verwendet werden.
Verwenden Sie daher die Toolbar-Klasse der AndroidX-Bibliothek, um die App-Leisten Ihrer Aktivitäten zu implementieren. Wenn Sie die Symbolleiste der AndroidX-Bibliothek verwenden, verhält sich Ihre App auf den meisten Geräten einheitlich.
Einer Aktivität eine Symbolleiste hinzufügen
In diesen Schritten wird beschrieben, wie Sie eineToolbar als App-Leiste für Ihre Aktivität einrichten:
- Fügen Sie Ihrem Projekt die AndroidX-Bibliothek hinzu, wie in der AndroidX-Übersicht beschrieben.
- Achte darauf, dass die Aktivität
AppCompatActivityerweitert:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- Legen Sie im App-Manifest das Element
<application>so fest, dass eines derNoActionBar-Themes von AppCompat verwendet wird, wie im folgenden Beispiel gezeigt. Wenn Sie eines dieser Designs verwenden, wird die App-Leiste nicht mit der nativenActionBar-Klasse bereitgestellt.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Fügen Sie dem Layout der Aktivität ein
Toolbarhinzu. Mit dem folgenden Layoutcode wird beispielsweise einToolbarhinzugefügt, das über der Aktivität zu schweben scheint:<androidx.appcompat.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"/>
Empfehlungen zur Erhebung der App-Leiste finden Sie in der Material Design-Spezifikation.
Positionieren Sie die Symbolleiste oben im Layout der Aktivität, da Sie sie als App-Leiste verwenden.
- Rufen Sie in der Methode
onCreate()der Aktivität die MethodesetSupportActionBar()der Aktivität auf und übergeben Sie die Symbolleiste der Aktivität, wie im folgenden Beispiel gezeigt. Mit dieser Methode wird die Symbolleiste als App-Leiste für die Aktivität festgelegt.Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // The Toolbar defined in the layout has the id "my_toolbar". setSupportActionBar(findViewById(R.id.my_toolbar)) }
Java
@Override protected 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. Die Aktionsleiste enthält standardmäßig den Namen der App und ein Überlaufmenü, das anfangs das Element Einstellungen enthält. Sie können der Aktionsleiste und dem Überlaufmenü weitere Aktionen hinzufügen, wie unter Aktionen hinzufügen und verarbeiten beschrieben.
Dienstprogramm-Methoden für die App-Leiste verwenden
Sobald Sie die Symbolleiste als App-Leiste einer Aktivität festgelegt haben, haben Sie Zugriff auf die Hilfsmethoden der Klasse ActionBar der AndroidX-Bibliothek. Mit diesem Ansatz können Sie nützliche Dinge tun, z. B. die App-Leiste ein- und ausblenden.
Rufen Sie zum Verwenden der Hilfsmethoden ActionBar die Methode getSupportActionBar() der Aktivität auf. Diese Methode gibt einen Verweis auf ein AppCompat-ActionBar-Objekt zurück.
Sobald Sie diesen Verweis haben, können Sie eine der ActionBar-Methoden aufrufen, um die App-Leiste anzupassen. Wenn Sie beispielsweise die App-Leiste ausblenden möchten, rufen Sie ActionBar.hide() auf.