根据Android指南,我实现了ActionBarDrawerToggle
,切换到全局上下文onDrawerOpened
和本地上下文onDrawerClosed
。此上下文切换涉及更改操作栏项目以及操作栏标题,并且非常简单。问题是,如果我导航到新屏幕,那么操作栏的标题将更改两次,一次用于切换回本地上下文,另一次用于用户也在导航的新屏幕。这看起来很笨重,我似乎无法找到一种方法来实现标题更改,以便用户不会看到它两次。
答案 0 :(得分:1)
似乎处理此问题的最佳方法是在抽屉关闭时检查一个条件。
这是一个简短的例子:
private boolean mNoTitleChange;
private int mPosition = -1;
@Override
public void onDrawerClosed(View view) {
if (mNoTitleChange) {
startActivity(new Intent(CurrentActivity.this, NewActivity.class));
mNoTitleChange = false;
return;
}
getActionBar().setTitle(mTitle);
invalidateOptionsMenu();
}
@Override
protected void onResume() {
super.onResume();
if (mPosition != -1) {
setTitle(mYourTitles[mPosition]);
mPosition = -1;
}
}
每当您在DrawerLayout
中选择一个项目时,请根据需要调整boolean
。
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mNoTitleChange = true;
mPosition = position;
mDrawerLayout.closeDrawer(mDrawerList);
}