如何检查导航抽屉是否打开?

Pop*_*sta 5 navigation android android-fragments navigation-drawer

我有一个带导航抽屉的活动.以下是我的代码.

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if(dLayout.isDrawerOpen(GravityCompat.START)==true) {
                 dLayout.closeDrawers();
                }

            else
            {
            doExit();
            }
        }

        return super.onKeyDown(keyCode, event);
    }

    private void doExit() {

        AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                FirstSelection.this);

        alertDialog.setPositiveButton("Yes", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();
            }
        });
Run Code Online (Sandbox Code Playgroud)

根据该代码,当用户按下后退按钮时,如果打开导航抽屉,则关闭导航抽屉,否则doExit();调用该方法.但在我的情况下,else条件工作正常,但当抽屉打开时按下后退按钮,完整的应用程序关闭.我按照这个代码如何检测导航抽屉是否打开?

任何帮助,将不胜感激.

amo*_*the 8

DrawerLayouthas方法isDrawerOpen(listView)返回true或false这将对你有所帮助

if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
            mDrawerLayout.closeDrawer(mDrawerList);
        } 
Run Code Online (Sandbox Code Playgroud)

在onBackPressed中添加上面的代码