Visualizza freccia indietro sulla barra degli strumenti


496

Sto migrando da ActionBara Toolbarnella mia applicazione. Ma non so come visualizzare e impostare l'evento click su Freccia indietro Toolbarcome ho fatto io Actionbar.

inserisci qui la descrizione dell'immagine

Con ActionBar, chiamo mActionbar.setDisplayHomeAsUpEnabled(true). Ma non esiste un metodo simile come questo.

Qualcuno ha mai affrontato questa situazione e in qualche modo ha trovato il modo di risolverlo?




Risposte:


900

Se stai usando un ActionBarActivity, puoi dire ad Android di usare Toolbaril ActionBarsimile in questo modo:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

E poi chiama a

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

funzionerà. Puoi anche usarlo in Frammenti a ActionBarActivitieste collegati in questo modo:

((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);

Se non si utilizza ActionBarActivitieso se si desidera ottenere la freccia indietro su un valore Toolbarnon impostato come proprio, SupportActionBarè possibile utilizzare quanto segue:

mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mActionBar.setNavigationOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
       //What to do on back clicked
   }
});

Se stai usando android.support.v7.widget.Toolbar, allora dovresti aggiungere il seguente codice al tuo AppCompatActivity:

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

12
Icona ufficiale di Google Material Design repo github.com/google/material-design-icons/blob/master/navigation/…
MrEngineer13

70
Se stai utilizzando l'ultima versione di appcompat-v7 (21.0.3 o successiva), puoi utilizzare R.drawable.abc_ic_ab_back_mtrl_am_alpha per il disegno a freccia indietro, incluso nella libreria di supporto.
Taeho Kim,

23
Si noti che getResources (). GetDrawable (...) è obsoleto. Dovresti invece usare ContextCompat.getDrawable (context, ...).
Quentin S.

7
Non ha funzionato, non riesco a trovare nessuno dei R.drawable.abc_ic_ab_back_mtrl_am_alphadue R.drawable.ic_action_back.
Henrique de Sousa,

10
per ottenere l'icona "indietro" dalla libreria di supporto toolbar.setNavigationIcon(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);
Bolein95,

215

Vedo molte risposte ma ecco la mia che non è stata menzionata prima. Funziona da API 8+.

public class DetailActivity extends AppCompatActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail);

    // toolbar
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    // add back arrow to toolbar
    if (getSupportActionBar() != null){
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // handle arrow click here
    if (item.getItemId() == android.R.id.home) {
        finish(); // close this activity and return to preview activity (if there is any)
    }

    return super.onOptionsItemSelected(item);
}

3
Funziona solo se imposti la barra degli strumenti come ActionBar. Non è per le barre degli strumenti autonome.
Kuff,

20
Upvote for onOptionItemSelected()Questo completa ciò che MrEngineer13 non ha trattato nella sua risposta.
Atul,

2
Grazie ha funzionato per me. Sembra essere migliore dell'uso del listener di clic, non mi interessa davvero le barre degli strumenti autonome
Mike76,

Come posso cambiare il colore della freccia?
Dmitry,

Non avevo bisogno delle linee sotto la riga dei commenti "barra degli strumenti", funziona bene.
Hack06,

173

Ci sono molti modi per ottenerlo, ecco il mio preferito:

Disposizione:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="?attr/homeAsUpIndicator" />

Attività:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // back button pressed
        }
    });

13
usare l'attributo tema è molto meglio della maggior parte degli altri suggerimenti in questa domanda
Pedro Loureiro,

3
invece di usare setNavigationOnClickListener()puoi aggiungere case android.R.id.home:dentro 'onOptionsItemSelected () `.
Eugene,

1
case android.R.id.homenon ha funzionato per me. quindi dopo un po 'di ricerca, la tua risposta ha fatto il trucco .. grazie.
deejay

Questa è la soluzione più autentica soprattutto se si desidera utilizzare l'icona posteriore predefinita del sistema Android.
Nauman Aslam,

using toolbar.setNavigationOnClickListener {onBackPressed ()}
filthy_wizard

74

è possibile utilizzare la barra degli strumenti metodo setNavigationIcon. Doc. Android

mToolBar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        handleOnBackPress();
    }
});

1
Potresti per favore aggiungere qualche spiegazione alla tua risposta? Le risposte solo al codice sono disapprovate su SO.
suonare il clacson il

1
Si prega di notare che il metodo setNavigationOnClickListener()è stato aggiunto in api livello 21 e superiore
Ali Mehrpour,

3
R.drawable.abc_ic_ab_back_mtrl_am_alpha è ora andato nel supporto 23.2.0, usa invece la risposta accettata.
Milano,

25

Se non vuoi creare un'abitudine Toolbar, puoi fare così

public class GalleryActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...  
        getSupportActionBar().setTitle("Select Image");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }
}                     

In te AndroidManifest.xml

<activity
    android:name=".GalleryActivity"
    android:theme="@style/Theme.AppCompat.Light">        
</activity>

puoi anche mettere questo android:theme="@style/Theme.AppCompat.Light"per <aplication>taggare, per applicare a tutte le attività

inserisci qui la descrizione dell'immagine


2
Grazie perif (item.getItemId() == android.R.id.home)
Adizbek Ergashev il

22
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setNavigationIcon(R.drawable.back_arrow); // your drawable
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed(); // Implemented by activity
        }
    });

E per API 21+ android:navigationIcon

<android.support.v7.widget.Toolbar
    android:navigationIcon="@drawable/back_arrow"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"/>

Dovrebbe essere la risposta accettata.
Anton Malyshev,

17

Ho usato questo metodo dalla documentazione per gli sviluppatori di Google :

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

Se ricevi un'eccezione puntatore null, potrebbe dipendere dal tema. Prova a utilizzare un tema diverso nel manifest o utilizzalo in alternativa:

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

Quindi nel manifest, dove ho impostato l'attività principale per l'attività corrente:

<activity
        android:name="com.example.myapp.MyCurrentActivity"
        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.myapp.MyMainActivity" />
</activity>

Spero che questo ti possa aiutare!


1
Il link di Google Documenti e il getSupportActionBar()funzionato. Grazie!
Rick,

15

Se si stava utilizzando AppCompatActivitye sono andati giù per il sentiero di non utilizzare, perché si voleva non ottenere l'automatico ActionBarche fornisce, perché si vuole separare la Toolbar, a causa delle vostre esigenze di Material Design e CoordinatorLayouto AppBarLayout, allora, considerare questo:

Puoi ancora usare il AppCompatActivity, non è necessario smettere di usarlo solo per poter usare un <android.support.v7.widget.Toolbar>nel tuo XML. Disattiva semplicemente lo stile della barra delle azioni come segue:

Innanzitutto, deriva uno stile da uno dei temi NoActionBar che ti piace nel tuo styles.xml, che ho usato in questo Theme.AppCompat.Light.NoActionBarmodo:

<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/primary_dark</item>
    ...
    ...
</style>

Nel manifest della tua app, scegli il tema di stile figlio che hai appena definito, in questo modo:

    <activity
        android:name=".activity.YourSuperCoolActivity"
        android:label="@string/super_cool"
        android:theme="@style/SuperCoolAppBarActivity">
    </activity>

Nel tuo Activity Xml, se la barra degli strumenti è definita in questo modo:

...
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        />
...

Quindi, e questa è la parte importante, imposti la barra delle azioni di supporto su AppCompatActivity che stai estendendo, in modo che la barra degli strumenti nel tuo XML diventi la barra delle azioni. Ritengo che sia un modo migliore, perché puoi semplicemente fare le molte cose che ActionBar consente, come menu, titolo automatico dell'attività, gestione della selezione degli elementi, ecc. Senza ricorrere all'aggiunta di gestori di clic personalizzati, ecc.

Nell'override onCreate della tua attività, procedi come segue:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_super_cool);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);
    //Your toolbar is now an action bar and you can use it like you always do, for example:
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} 

8
MyActivity extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(arrow -> onBackPressed());
    }

Puoi usare retrolambda.
Artemiy,

questo è quello che ho e non funziona. non riesco a capirlo.
filthy_wizard,

7

Modo semplice e facile per mostrare il pulsante Indietro sulla barra degli strumenti

Incolla questo codice nel metodo onCreate

 if (getSupportActionBar() != null){

            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }

Incolla questo metodo di sostituzione al di fuori del metodo onCreate

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()== android.R.id.home) {

        finish();
    }
    return super.onOptionsItemSelected(item);
}

7

A Kotlin lo sarebbe

private fun setupToolbar(){
    toolbar.title = getString(R.string.YOUR_TITLE)
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
    supportActionBar?.setDisplayShowHomeEnabled(true)
}

// don't forget click listener for back button
override fun onSupportNavigateUp(): Boolean {
    onBackPressed()
    return true
}


5

Nella AppCompatActivityad esempio, si può fare

public class GrandStatActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grand_stat);
    }

    @Override
    public void onResume() {
        super.onResume();

        // Display custom title
        ActionBar actionBar = this.getSupportActionBar();
        actionBar.setTitle(R.string.fragment_title_grandstats);

        // Display the back arrow
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    // Back arrow click event to go to the parent Activity
    @Override
    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }

}

4

Nel tuo file manifest per l'attività in cui desideri aggiungere un pulsante Indietro, utilizzeremo la proprietà android: parentActivityName

        <activity
        android:name=".WebActivity"
        android:screenOrientation="portrait"
        android:parentActivityName=".MainActivity"
        />

PS Questo attributo è stato introdotto nel livello API 16.


3

Questo ha funzionato perfettamente

public class BackButton extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chat_box);
        Toolbar chatbox_toolbar=(Toolbar)findViewById(R.id.chat_box_toolbar);
        chatbox_toolbar.setTitle("Demo Back Button");
        chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
        setSupportActionBar(chatbox_toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        chatbox_toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //Define Back Button Function
            }
        });
    }
}

3

Innanzitutto, è necessario inizializzare la barra degli strumenti:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

quindi chiama il pulsante Indietro dalla barra delle azioni:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

2

Se vuoi ottenere la freccia indietro su una barra degli strumenti che non è impostata come SupportActionBar:

(Kotlin)

val resId = getResIdFromAttribute(toolbar.context, android.R.attr.homeAsUpIndicator)
toolbarFilter.navigationIcon = ContextCompat.getDrawable(toolbar.context, resId)
toolbarFilter.setNavigationOnClickListener { fragmentManager?.popBackStack() }

per ottenere res dagli attributi:

@AnyRes
fun getResIdFromAttribute(context: Context, @AttrRes attr: Int): Int {
    if (attr == 0) return 0
    val typedValueAttr = TypedValue()
    context.theme.resolveAttribute(attr, typedValueAttr, true)
    return typedValueAttr.resourceId
}

1

Aggiungi questo al file XML dell'attività nella cartella layout:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
    <android.support.v7.widget.Toolbar
        android:id="@+id/prod_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>

Rendi cliccabile la barra degli strumenti, aggiungili al metodo onCreate:

Toolbar toolbar = (Toolbar) findViewById(R.id.prod_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

1

Forse un modo più affidabile per ottenere l'icona in alto dal tema (se non si utilizza la barra degli strumenti come barra delle azioni):

toolbar.navigationIcon = context.getDrawableFromAttribute(R.attr.homeAsUpIndicator)

Per trasformare l'attributo del tema in un disegno ho usato una funzione di estensione:

fun Context.getDrawableFromAttribute(attributeId: Int): Drawable {
    val typedValue = TypedValue().also { theme.resolveAttribute(attributeId, it, true) }
    return resources.getDrawable(typedValue.resourceId, theme)
}

0

Se stai utilizzando DrawerLayout con ActionBarDrawerToggle , quindi per mostrare il pulsante Indietro anziché il pulsante Menu (e viceversa), devi aggiungere questo codice alla tua attività:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.application_name, R.string.application_name);
    mDrawerLayout.addDrawerListener(mDrawerToggle);

    mDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_arrow_back_white_32dp);
    mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed(); // Or you can perform some other action here when Back button is clicked.
        }
    });
    mDrawerToggle.syncState();
    // ...
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item))
        return true;

    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        // ...
    }

    return super.onOptionsItemSelected(item);
}

public void showBackInToolbar(boolean isBack) {
    // Remove next line if you still want to be able to swipe to show drawer menu.
    mDrawerLayout.setDrawerLockMode(isBack ? DrawerLayout.LOCK_MODE_LOCKED_CLOSED : DrawerLayout.LOCK_MODE_UNLOCKED);
    mDrawerToggle.setDrawerIndicatorEnabled(!isBack);
    mDrawerToggle.syncState();
}

Pertanto, quando è necessario mostrare il pulsante Indietro anziché il pulsante Menu , chiamare showBackInToolbar (true) e, se è necessario il pulsante Menu , chiamare showBackInToolbar (false) .

Puoi generare la freccia indietro (ic_arrow_back_white_32dp) qui , cerca arrow_back nella sezione Clipart (usa 32dp predefinito con imbottitura 8dp). Basta selezionare il colore desiderato.


0

Puoi sempre aggiungere a Relative layouto a Linear Layoutnel tuo Toolbare posizionare una vista Immagine per l'icona indietro o chiudere l'icona ovunque nella barra degli strumenti come preferisci

Ad esempio ho usato il layout relativo nella mia barra degli strumenti

 <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar_top"
                android:layout_width="match_parent"
                android:layout_height="35dp"
                android:minHeight="?attr/actionBarSize"
                android:nextFocusDown="@id/netflixVideoGridView"
                app:layout_collapseMode="pin">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">


                    <TextView

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Myflix"
                        android:textAllCaps="true"
                        android:textSize="19sp"
                        android:textColor="@color/red"
                        android:textStyle="bold" />


                    <ImageView
                        android:id="@+id/closeMyFlix"
                        android:layout_alignParentRight="true"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/vector_close" />


                </RelativeLayout>

            </android.support.v7.widget.Toolbar>

E sembra così:

inserisci qui la descrizione dell'immagine

È possibile aggiungere un listener di clic su quella vista immagine da Attività o frammento in questo modo.

  closeMyFlix.setOnClickListener({
            Navigator.instance.showFireTV(  activity!!.supportFragmentManager)
        })

0

Con Kotlin è diventato:

xml:

<include
android:id="@+id/tbSignToolbar "
layout="@layout/toolbar_sign_up_in"/>

Nella tua attività: -

setSupportActionBar(tbSignToolbar as Toolbar?)//tbSignToolbar :id of your toolbar 
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)

0

Se si utilizza JetPack Navigation.

Ecco il layout per MainActivity

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                               xmlns:app="http://schemas.android.com/apk/res-auto"
                                               xmlns:tools="http://schemas.android.com/tools"
                                               android:layout_width="match_parent"
                                               android:layout_height="match_parent"
                                               tools:context=".MainActivity">

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolBar"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

</androidx.appcompat.widget.Toolbar>

<fragment
        android:id="@+id/my_nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintTop_toBottomOf="@id/toolBar"
        app:layout_constraintBottom_toTopOf="parent"
        app:navGraph="@navigation/nav_graph"/>

Imposta la barra degli strumenti nella tua attività come di seguito in onCreate () della tua classe Activity.

val navHostFragment = supportFragmentManager
        .findFragmentById(R.id.my_nav_host_fragment) as NavHostFragment? ?: return

val navController = navHostFragment.findNavController()
val toolBar = findViewById<Toolbar>(R.id.toolBar)
setSupportActionBar(toolBar) // To set toolBar as ActionBar
setupActionBarWithNavController(navController)

setupActionBarWithNavController (navController) Se necessario, creerà un pulsante Indietro sulla barra degli strumenti e gestirà la funzionalità BackButton. Se è necessario scrivere una funzionalità CustomBack, creare un callBack come di seguito sul frammento del metodo onCreate ()

val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
        // Handle the back button event
    }

Dalla documentazione: https://developer.android.com/guide/navigation/navigation-custom-back


0

Se stai usando androidx.appcompat.app.AppCompatActivitysolo usa:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Quindi definisci semplicemente Manifest.xmll'attività genitore.

<activity
    android:name=".MyActivity"
    ...>
  <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value=".ParentActivity" />
</activity>

Invece se stai usando un Toolbare vuoi un comportamento personalizzato, usa solo:

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar" 
    app:navigationIcon="?attr/homeAsUpIndicator"
    .../>

e nella tua attività:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //....
    }
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.