Android Studio: personalizzare l’immagine “torna indietro” dell’ActionBar (homeAsUpIndicator)

Come molti di voi sapranno, il controllo ActionBar di una applicazione Android può essere configurato per prevedere una “navigazione all’indietro” (Up Navigation) da una Activity a un’altra, purché quest’ultima sia stata configurata come parent.

<application>
    <!-- Activity principale -->
    <activity
        android:name="com.example.myfirstapp.MainActivity"
        ...
    </activity>
    <!-- Activity dipendente -->
    <activity
        android:name="com.example.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity">
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

Per una guida completa alla Up Navigation rimandiamo all’apposita pagina della documentazione ufficiale. Ricorderemo solo che, per visualizzare l’icona, è necessario impostare correttamente il metodo setDisplayHomeAsUpEnabled()  nel seguente modo:

@Override
public void onCreate(Bundle savedInstanceState) {
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

Questo comando provocherà la visualizzazione di una icona di navigazione sul lato sinistro della ActionBar dell’Activity. 

Per sostituire l’icona con un drawable personalizzato è sufficiente inserire questa dichiarazione all’interno del proprio theme:

<item name="android:homeAsUpIndicator">@drawable/ic_custom_indicator</item>

Il file dove inserire questa istruzione è solitamente /values/styles.xml , ma può essere anche /values/themes.xml  o un altro file, a seconda di come avete organizzato la vostra applicazione. Nel caso in cui vogliate supportare anche API inferiori alla 11 il contenuto di cui sopra andrà inserito nel file presente nella cartella /values-v11/ , mentre nella cartella /values/  andrà utilizzata la sintassi compatibile con le API meno recenti:

<item name="homeAsUpIndicator">@drawable/ic_custom_indicator</item>

 

Di seguito vi proponiamo due archivi .rar contenenti alcune icone di esempio per la personalizzazione del vostro homeAsUpIndicator: in entrambi i casi si tratta di icone chiare, da utilizzare quindi per una ActionBar che abbia un background color di colore scuro.

Felice sviluppo!

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.