2014-10-29 17 views
7

So, ich habe eine BaseActivity, in der ich eine Symbolleiste habe und ich setSupportActionBar (Symbolleiste) aufrufen.Android Toolbar setNavigationIcon funktioniert nicht

In einigen meiner Aktivitäten, die BaseActivity erweitert, möchte ich das Navigationssymbol (der Standardpfeil) in ein anderes Zeichen ändern. Aber wenn ich toolbar.setNavigationIcon (myDrawable) aufrufen, funktioniert es nicht, es zeigt immer noch das Standard-Pfeilsymbol nach links.

Irgendeine Idee? Danke.

+0

möglich doppelte: http://stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set – Abdellah

Antwort

39

ich glaube, Sie mögen dieses

menuDrawerToggle = new ActionBarDrawerToggle(this, menuDrawer, toolbar, R.string.drawer_open, R.string.drawer_close){...} 

    menuDrawerToggle.syncState(); 

    toolbar.setNavigationIcon(getResources().getDrawable(yourDrawable)); 

Put setNavigationIcon nach syncState einstellen()

+2

WTF!?!? Ich hätte das nie gefunden, wie zum Teufel hast du das herausgefunden? Wenn ich wüsste, wie. – Anthony

+0

Wie hat das nur (jetzt 7) Stimmen. Toller Fund !! –

+0

Große Antwort. Kann es nicht glauben –

1

In meinem Fall: Ich ActionBarDrawerToggle verwenden `t anziehen. Für mich hilfreich war: um die Reihenfolge der Methodenaufrufe zu ändern.

Von:

Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar); 
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp); 

An:

Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar); 
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp); 
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
0

In meinem Fall setNavigationIcon nach syncState als @Hsieh nicht! Meine Lösung wird in der onPostCreate-Methode wie folgt festgelegt. Überschreiben Sie diese Methode in Ihrer Aktivität

@Override 
    protected void onPostCreate(@Nullable Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     mToolbar.setNavigationIcon(R.drawable.ic_menu_button); 
    } 
Verwandte Themen