当前位置: 首页 > 知识库问答 >
问题:

禁用滑动打开的抽屉,但不用于关闭

太叔正文
2023-03-14

我想通过滑动禁用抽屉的打开,但不是通过滑动或后退按钮关闭。

我在抽屉中使用碎片,所以当抽屉打开时,我替换碎片并将其添加到Backback中。按Back(后退)按钮时,抽屉按预期关闭。

但是当我使用

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

就像在这篇文章中:禁用在android中打开导航抽屉的滑动手势,它会禁用所有滑动和返回按钮导航。现在关闭抽屉的唯一方法是触摸抽屉外面的屏幕。

是否有替代锁定模式并保留滑动关闭和后退按钮导航?

注意:我使用的是Android 5.0.1

共有1个答案

江宏放
2023-03-14

我找到了一个解决方法来实现我想要的:

最初我将抽屉模式设置为关闭。打开后,例如通过按钮,我解锁抽屉以启用再次关闭的手势。抽屉关闭后,打开的锁将被重新激活。为此,我使用ActionBarDrawerTougle的界面

    mDrawerToggle = new ActionBarDrawerToggle(
            getActivity(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    )
    {
        @Override
        public void onDrawerClosed(View drawerView)
        {
            super.onDrawerClosed(drawerView);
            mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
        }

        @Override
        public void onDrawerOpened(View drawerView)
        {
            super.onDrawerOpened(drawerView);
            mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);           
        }
    };

我试图越过抽屉布局或其部分,但要得到我想要的东西将是一项艰巨的工作。

我希望这个解决方案对其他人有帮助。

 类似资料:
  • 有没有办法禁用滑动手势来打开导航抽屉?在标签之间滑动时出现菜单真的很烦人。

  • 我一直在遵循谷歌的导航抽屉指南,我想把它添加到一个带有标签和手势的活动中。 我想禁用打开导航抽屉的手势,有人知道怎么做吗?

  • 问题内容: 我想要一个在应用启动时打开的滑块。它将通过按钮等打开,并且当用户关闭它时,将有更多按钮可供访问。滑动抽屉可以吗?我会在onCreate()方法中添加什么? 谢谢 问题答案: XML布局-在基本的LinearLayout中: 您的活动将如下所示:

  • 我目前正在从android站点上了解导航抽屉,我正在使用他们的示例http://developer.android.com/training/implementation-navigation/nav-drawer.html 我想要的是在中添加一个按钮,它将能够打开。我需要以编程方式完成,而不是XML。我怎么能那样做?

  • 二等 三等

  • 就像Android开发者的页面上说的 用户可以通过从屏幕左边缘滑动或通过触摸操作栏上的应用图标将导航抽屉带到屏幕上。 但奇怪的是,我的活动上的导航抽屉对滑动动作没有反应。它只在触摸操作栏上的图标时切换。下面是我对导航抽屉的实现 对此有什么可能的解释吗?我怀疑的是我的活动默认有它的一个片段的布局。所以这是原因吗? 编辑:我的活动的布局文件