所以,我有一个BaseActivity,我有一个工具栏,我打电话setSupportActionBar(工具栏)。Android的工具栏setNavigationIcon无法正常工作
在我的一些扩展BaseActivity的活动中,我想将导航图标(默认箭头)更改为另一个drawable。但是当我调用toolbar.setNavigationIcon(myDrawable)它不起作用时,它仍然显示默认的左指向箭头图标。
有什么想法? 谢谢。
所以,我有一个BaseActivity,我有一个工具栏,我打电话setSupportActionBar(工具栏)。Android的工具栏setNavigationIcon无法正常工作
在我的一些扩展BaseActivity的活动中,我想将导航图标(默认箭头)更改为另一个drawable。但是当我调用toolbar.setNavigationIcon(myDrawable)它不起作用时,它仍然显示默认的左指向箭头图标。
有什么想法? 谢谢。
我想你可以设置像syncState后()
WTF!?!?我永远不会发现这一点,你怎么知道这一点?如果我知道如何,我会给你一堆代表。 – Anthony 2015-05-01 21:49:21
这只有(现在7)票。伟大的发现! – 2015-08-15 22:27:32
很好的答案。无法相信它 – 2016-01-06 15:04:12
这
menuDrawerToggle = new ActionBarDrawerToggle(this, menuDrawer, toolbar, R.string.drawer_open, R.string.drawer_close){...}
menuDrawerToggle.syncState();
toolbar.setNavigationIcon(getResources().getDrawable(yourDrawable));
放setNavigationIcon在我的情况:我不`吨使用ActionBarDrawerToggle。对我有帮助的是: 改变方法调用的顺序。
来源:
Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp);
要:
Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar);
toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_24dp);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
在我的情况下,syncState后setNavigationIcon作为@Hsieh不行! 我的解决方案在onPostCreate方法中设置如下。 您的活动覆盖此方法
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mToolbar.setNavigationIcon(R.drawable.ic_menu_button);
}
可能重复:http://stackoverflow.com/questions/26525229/toolbar-navigation-icon-never-set – Abdellah 2014-10-29 21:56:26