异常:
在布局XML中设置android:navigationIcon=”@drawable/icon”或者在代码中设置都无法自定义成自己需要设置的NavigationIcon图片。
代码设置NavigationIcon如下:
Toolbar toolbar = (Toolbar)findViewById(R.id.my_toolbar);
toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);
解决办法:
如果你在XML布局中设置ToolBar设置NavigationIcon,那么现在需要放弃这种做法,否者始终无法显示出你设置的NavigationIcon,至于原因目前我还不知道,如果你知道的话,欢迎告诉我一下,万分感谢;
如果你在代码中设置的ToolBar的NavigationIcon,结果却还是没有显示你需要的NavigationIcon,那么你需要着重检查一下,你是否有 setSupportActionBar(toolbar);
这句代码,否者你在代码中对toolbar所做的设置是无法应用到ToolBar中的,另外很重要的一点就是:setSupportActionBar(toolbar);
必须在ToolBar初始化之后,setNavigationIcon()以及各种自定义ToolBar设置(例如:toolbar.setTitle("Title");
)之前,否者同样无法将设置应用到ToolBar之上。
至于setSupportActionBar(toolbar);
这句代码的作用,其实就是将你的ToolBar设置到ActionBar上,替换掉它。
正确代码如下(可以和异常中的代码比较一下):
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.icon);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
参考链接:
http://stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set