打开 NavigationView 只点击左上角的图标但不使用 swype 手势

Open NavigationView only clicking on top-left icon but not with swype gesture

我正在我的应用程序中实现导航视图。

实际上,我可以通过单击 "hamburger" 图标(在我的工具栏中)和从左向右滑动来打开它。

我只想通过禁用 swype 的工具栏中的图标打开它。可以吗?

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, sToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);

toggle.syncState();

编辑

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); // HERE
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, sToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);

toggle.syncState();

如果我使用上面的代码,在我使用 DrawerLayout.LOCK_MODE_LOCKED_CLOSED 的地方,我会同时禁用图标和 swype。

这适用于我的情况

锁定它:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

并解锁它:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

希望能帮到你!

为了只对汉堡包图标进行点击而不是滑动,我做了以下操作,

DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
mDrawerLayout.addDrawerListener(toggle);
toggle.syncState();

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
            mDrawerLayout.openDrawer(GravityCompat.START);
        }
    });