Nella forma più semplice, la barra delle azioni mostra il titolo dell'attività su uno e un menu extra sull'altro lato. Anche in questa versione di base, la barra delle app utili per gli utenti e conferiscono alle app Android un aspetto e un design coerenti.
.Tutte le attività che utilizzano il tema predefinito hanno un'opzione
ActionBar
come app
. Le funzionalità della barra delle app vengono aggiunte al ActionBar
nativo su varie
Release di Android. Di conseguenza, lo ActionBar
nativo si comporta in modo diverso
a seconda della versione di Android utilizzata dal dispositivo.
Le funzionalità vengono invece aggiunte alla versione della libreria AndroidX AppCompat
Toolbar
,
il che significa che queste funzionalità sono disponibili sui dispositivi che usano le librerie AndroidX.
Utilizza la classe Toolbar
della libreria AndroidX per implementare le tue attività
barre delle app per questo motivo. La barra degli strumenti della libreria AndroidX rende
un comportamento coerente sulla vasta gamma di dispositivi.
Aggiungi una barra degli strumenti a un'attività
Questi passaggi descrivono come configurareToolbar
come barra delle app per le tue attività:
- Aggiungi la libreria AndroidX al tuo progetto, come descritto in Panoramica di AndroidX.
- Assicurati che l'attività si prolunghi
AppCompatActivity
:Kotlin
class MyActivity : AppCompatActivity() { // ... }
Java
public class MyActivity extends AppCompatActivity { // ... }
- Nel file manifest dell'app, imposta
<application>
per utilizzare uno dei pod di AppCompatNoActionBar
come mostrato nell'esempio che segue. L'utilizzo di uno di questi temi impedisce dall'utilizzo della classeActionBar
nativa per fornire la barra delle app.<application android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
- Aggiungi un
Toolbar
al layout dell'attività. Ad esempio, aggiunge unToolbar
e gli conferisce l'aspetto di una rappresentazione mobile sopra l'attività:<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"/>
Consulta le Specifiche di Material Design per consigli sull'altitudine della barra dell'app.
Posiziona la barra degli strumenti nella parte superiore dell'attività layout, perché utilizzi come barra delle app.
- Nella sezione
onCreate()
, chiama il metodosetSupportActionBar()
e trasferire la barra degli strumenti dell'attività, come mostrato nell'esempio seguente. Questo imposta la barra degli strumenti come barra delle app per l'attività.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); }
La tua app ora ha una barra delle azioni di base. Per impostazione predefinita, la barra delle azioni contiene il nome dell'app e un menu extra, che inizialmente contiene la voce Impostazioni. Puoi aggiungere altre azioni alla barra delle azioni e al menu extra, come descritto in Aggiungere e gestire le azioni.
Utilizzare i metodi dell'utilità della barra delle app
Una volta impostata la barra degli strumenti come barra delle app di un'attività, puoi accedere all'utilità
forniti dalla libreria AndroidX
ActionBar
. Questo approccio ti consente di fare cose utili, come nascondere e mostrare la barra delle app.
Per usare i metodi dell'utilità ActionBar
, richiama il metodo
getSupportActionBar()
. Questo metodo restituisce un riferimento a un oggetto AppCompat ActionBar
.
Una volta trovato il riferimento, puoi chiamare uno qualsiasi dei metodi ActionBar
per regolare la barra delle app. Ad esempio, per nascondere la barra delle app, richiama
ActionBar.hide()
.