如果抽屉是空的,则不会调用android onBackPressed

时间:2015-04-16 11:17:51

标签: android methods override back android-navigation

DrawerLayout mDrawerLayoutTrack;
RelativeLayout mDrawerLlTrack;

我覆盖onBackPressed,如下所示

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

显示抽屉是否未显示;否则(如果当前显示抽屉)返回。

当抽屉中至少有一个项目时,上述逻辑非常有效。

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

日志猫也没有异常或任何内容。

为什么会发生这种情况?

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

1 个答案:

答案 0 :(得分:0)

把它放在你的代码中

mDrawerLayoutTrack.setFocusableInTouchMode(假);

然后即使抽屉打开也会调用onBackPressed。