【问题标题】:android onBackPressed not getting called if drawer is empty如果抽屉为空,android onBackPressed 不会被调用
【发布时间】:2015-04-16 11:17:50
【问题描述】:
DrawerLayout mDrawerLayoutTrack;
RelativeLayout mDrawerLlTrack;

我像下面这样覆盖onBackPressed

@Override
public void onBackPressed() {
    if (mDrawerLayoutTrack.isDrawerOpen(mDrawerLlTrack) == false) {
        mDrawerLayoutTrack.openDrawer(mDrawerLlTrack);
    } else {
        super.onBackPressed();
    }
}

如果抽屉没有显示,则显示;否则(如果当前显示抽屉)返回。

当抽屉中至少有一件物品时,上述逻辑完美运行。

但是,如果抽屉和抽屉中没有显示任何项目,并且如果我按 beck 则不会调用 onBackPressed。我通过调试(放置断点)并将日志放入方法中进行了测试。

log cat 也不例外。

那么为什么会这样呢?

我不想使用 onKeyDown 或任何其他逻辑。

【问题讨论】:

  • @Blackbelt 只是回到上一个活动(如果抽屉当前正在显示)

标签: android methods overriding back android-navigation


【解决方案1】:

只需将其放入您的代码中

mDrawerLayoutTrack.setFocusableInTouchMode(false);

然后 onBackPressed 将在抽屉打开时被调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多