【问题标题】:Open NavigationView only clicking on top-left icon but not with swype gesture打开 NavigationView 仅单击左上角图标,但不使用 swype 手势
【发布时间】:2016-06-29 11:58:24
【问题描述】:

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

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

我只想通过我的工具栏中禁用 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。

【问题讨论】:

标签: android navigation-drawer android-navigationview


【解决方案1】:

这适用于我的情况

锁定它:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

然后解锁:

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);

希望能提供帮助!

【讨论】:

  • 在你的抽屉初始化之后
  • 如果我使用上面的代码,我使用 DrawerLayout.LOCK_MODE_LOCKED_CLOSED,我会禁用图标和 swype。
  • hmm 有趣.. 你有抽屉按钮的监听器来打开布局
  • 如果您在 toggle.syncState() 之后尝试锁定抽屉; ,这个改变有效果吗?
  • 我没有听众可以打开抽屉。我没有覆盖 DrawerListener。
【解决方案2】:

为了只在汉堡图标上点击而不是滑动,我做了以下,

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);
        }
    });

【讨论】:

  • 您还应该覆盖 onDrawerSlide 并在抽屉关闭时重新锁定 (slideoffset==0)...
猜你喜欢
  • 2014-07-04
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 2022-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多