有一次,我的抽屉图标从汉堡包变成了返回按钮,调用了以下代码:
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
因此,返回箭头显示出来了,但是点击它后,抽屉仍然打开。
我希望能够处理它,调用onBackpressed()
代替。
这是我创建抽屉实例的时候。
mActionBarDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
if (!isAdded()) return;
getActivity().invalidateOptionsMenu();
}
@Override
public View.OnClickListener getToolbarNavigationClickListener() {
return super.getToolbarNavigationClickListener();
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
if (!isAdded()) return;
if (!mUserLearnedDrawer) {
mUserLearnedDrawer = true;
saveSharedSetting(getActivity(), PREF_USER_LEARNED_DRAWER, "true");
}
getActivity().invalidateOptionsMenu();
}
};
我认为当我点击抽屉开关时,无论是汉堡包图标还是返回箭头图标,都必须调用getToolbarNavigationClickListener()
方法,但事实并非如此。
onMenuItemClick
函数。很可能您正在重写此函数。 - Atif Farrukh