我的问题是继续讨论这个问题Toolbar NavigationIcon loose theme。这是支持库21中的known bug。
在我的情况下,我有两个不同主题工具栏的活动。当我从Activity2导航回Activity1时,Activity1工具栏按钮(后退和溢出)采用Activity2的主题。
我正在尝试为此问题做一个解决方法,这是我迄今为止尝试过的。
我的Activity1的 onResume()
@Override
protected void onResume() {
super.onResume();
supportInvalidateOptionsMenu();
if(mToolbar != null) {
// set navigation icon
mToolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
}
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
活动1的 onPrepareOptionsMenu
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// set overflow icon
for(int i = 0; i < mToolbar.getChildCount(); i++) {
if(mToolbar.getChildAt(i) instanceof ActionMenuView) {
ActionMenuView v = (ActionMenuView)mToolbar.getChildAt(i);
for(int j = 0; j < v.getChildCount(); j++) {
if(v.getChildAt(j) instanceof TintImageView) {
TintImageView v1 = (TintImageView)v.getChildAt(j);
v1.setImageResource(R.drawable.abc_ic_menu_moreoverflow_mtrl_alpha);
}
}
}
}
return super.onPrepareOptionsMenu(menu);
}
使用此解决方法我的后退按钮工作正常但溢出图标出现在Activity2的主题中,直到我按下它一次。一旦按下它就会改变它的主题。此外,我在Activity1中使用Searchview
,当它被激活时,只会出现溢出图标。
如果需要更多信息,请与我们联系。