有一次,我的抽屉图标从汉堡包变为后退按钮,调用:
((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();
}
};
我认为当我点击抽屉toogle时,必须调用getToolbarNavigationClickListener()
方法,无论是汉堡包还是后箭头,但它没有。
答案 0 :(得分:0)
当您需要覆盖工具栏上的箭头时,单击设置导航,单击工具栏。
getSupportActionBar().setNavigationOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//handle back press or open drawer etc.
}
});
每次都适合我。