【问题标题】:Android Navigation Double Drawer with ActionBarDrawerToggle带有 ActionBarDrawerToggle 的 Android 导航双抽屉
【发布时间】:2015-01-06 00:26:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android navigation-drawer android-toolbar drawertoggle


    【解决方案1】:

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

    onOptionItemSelectedandroid.R.id.home 仅在活动内部传递。这是因为 Action Bar 是活动范围的(每个活动最多一个 Action Bar)。

    改为在 Activity 中覆盖 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多