我正在编写一个由另一家公司预先编写的代码。现在我想在操作栏的左上角添加一个汉堡包菜单图标。我的做法是:
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
if(!(getActivity() instanceof AppCompatActivity))
return;
AppCompatActivity appCompatActivity = (AppCompatActivity) getActivity();
appCompatActivity.getSupportActionBar().setHomeButtonEnabled(true);
Drawable hamburger = getResources().getDrawable(R.drawable.mc_tab_icon_sections);
hamburger.setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_ATOP);
appCompatActivity.getSupportActionBar().setHomeAsUpIndicator(hamburger);// set drawable icon
appCompatActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
在我的片段中,这非常好。
但现在当用户点击这个图标时,我就是这样处理的:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
showSectionsMenu();
return true;
}
return super.onOptionsItemSelected(item);
}
在活动中创建操作栏的方式是:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.mc_main, menu);
if (menu != null) {
search = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) search.getActionView();
toolbarStateModel.setSearchView(searchView);
search.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return false;
}
});
settingsActionItem = menu.findItem(R.id.action_settings);
settingsActionItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
controller.getNavigation().openSettings(BaseMainActivity.this);
return false;
}
});
}
return true;
}
但是现在当我点击汉堡包菜单图标,而不是叫“onoptionsitemselected”。它只是关闭应用程序,而应用程序中的任何地方都不会调用“onoptionsitemselected”。
任何帮助都将不胜感激。短暂性脑缺血发作
暂无答案!
目前还没有任何答案,快来回答吧!