La barra delle app ti consente di aggiungere pulsanti per le azioni degli utenti. Questa funzionalità ti consente di le azioni più importanti per il contesto corrente nella parte superiore dell'app. Ad esempio, un'app di navigazione delle foto potrebbe mostrare le opzioni Condividi e Crea album in alto quando l'utente guarda il suo rullino. Quando l'utente guarda una singola foto, l'app potrebbe mostrare ritagli e pulsanti di filtro.
Lo spazio nella barra delle app è limitato. Se un'app dichiara più azioni di quelle idonee nella barra delle app, le azioni in eccesso vengono inviate a un menu overflow. L'app può anche specificare che un'azione venga sempre visualizzata nel menu extra. anziché sulla barra delle app.
.Aggiungere pulsanti di azione
Tutti i pulsanti di azione e gli altri elementi disponibili nell'overflow di azioni vengono
definiti in un file XML
risorsa del menu. Per aggiungere
azioni nella barra delle azioni, crea un nuovo file XML nel
Directory res/menu/
.
Aggiungi un
<item>
per ogni elemento che vuoi includere nella barra delle azioni, come mostrato nell'
seguente file XML del menu di esempio:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
L'attributo app:showAsAction
specifica se l'azione è
che appare sotto forma di pulsante
sulla barra delle app. Se imposti
app:showAsAction="ifRoom"
, come nel codice di esempio
preferito: l'azione viene visualizzata come un pulsante se c'è spazio
nella barra delle app. Se non c'è abbastanza spazio, le azioni in eccesso vengono inviate alla
menu extra. Se imposti app:showAsAction="never"
, come
l'azione impostazioni del codice di esempio: l'azione è sempre elencata nella
menu extra e non visualizzato nella barra delle app.
Il sistema utilizza l'icona dell'azione come pulsante di azione se l'azione viene visualizzata nella barra delle app. Puoi trovare molte icone utili in Icone del Material.
Rispondere alle azioni
Quando l'utente seleziona una delle voci della barra delle app, il sistema chiama la tua
dell'attività
onOptionsItemSelected()
di callback di Google e passa un
Oggetto MenuItem
per indicare quale elemento è stato toccato. Nell'implementazione
onOptionsItemSelected()
, chiama il
MenuItem.getItemId()
per determinare quale elemento è stato toccato. L'ID restituito corrisponde al valore specificato
dichiarano nei tag dell'elemento <item>
Attributo android:id
.
Ad esempio, il seguente snippet di codice verifica l'azione selezionata dall'utente. Se il metodo non riconosce l'azione dell'utente, richiama la superclasse :
Kotlin
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
Java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }