有2个活动。
我为每个人做了单独的窗帘。轻轻一扫,一切都很好,即每个活动都打开了自己的“帷幕”。
但是,当您单击第二个活动中的“汉堡”图标时,会发生以下情况:
第二个活动的幕布立即出现在左侧并向右滑动,并从可见区域隐藏,我们已经在屏幕上的第一个活动。
没有错误被抛出。
也许有人在为不同的活动制作不同的“窗帘”时遇到了这个问题?
活动一公告:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
mToolbar = (Toolbar) findViewById(R.id.toolbar_first);
mNavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_first_layout);
setSupportActionBar(cToolbar);
mToolbar.setTitleTextColor(getResources().getColor(R.color.white));
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
点击处理第一个活动:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
mNavigationDrawer.openDrawer(GravityCompat.START);
}
switch (item.getItemId()) {
case R.id.menu_first:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
活动二公告:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
cToolbar = (Toolbar) findViewById(R.id.toolbar_second);
cNavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_second_layout);
setSupportActionBar(cToolbar);
cToolbar.setTitleTextColor(getResources().getColor(R.color.white));
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
处理按下第二个活动。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
cNavigationDrawer.openDrawer(GravityCompat.START);
}
switch (item.getItemId()) {
case R.id.menu_second:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
看起来你有
back一堆同时工作的活动。点击后尽量不要将控制权移交给父级
android.R.id.home