0

我已经实现了双抽屉布局。我还设置了一个 ActionBarDrawerToggle。

我的问题是当我单击主页按钮时,我的左侧抽屉打开并播放动画。打开时我的右抽屉也显示抽屉打开动画。即使在使用 mDrawerToggle.syncState(); 时,这也会导致主页图标出现奇怪的同步问题;

我想要做的是拦截打开左抽屉的主页按钮单击事件,以便我可以测试哪个抽屉是打开的,然后适当地关闭那个。有没有办法在主页图标上设置点击监听器?(Android 5.0 使用的图标,当 mActionBar.setHomeButtonEnabled(true); mActionBar.setDisplayHomeAsUpEnabled(true); 使用时)

我曾尝试检查“android.R.id.home”项目的 onOptionsItemSelected,但当我单击主页打开左侧抽屉时,它从未被调用。

4

1 回答 1

0

由于ActionBarDrawerToggle只是管理家庭可绘制对象,因此您没有收到onOptionItemSelected回调的唯一原因是您在片段中。

onOptionItemSelectedwithandroid.R.id.home仅在活动内部交付。这是因为操作栏是活动范围的(每个活动最多一个操作栏)。

onOptionItemSelected而是在活动内部覆盖。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  int id = item.getItemId();
  switch (id) {
    case android.R.id.home:
      // Do something.
      return true;
  }
  return super.onOptionsItemSelected(item);
}
于 2018-02-20T09:24:33.630 回答