禁用滑动打开抽屉但不是关闭
Disable swipe for open drawer but NOT for closing
我想禁用通过滑动打开抽屉,但不想通过滑动或后退按钮关闭抽屉。
我在我的抽屉里使用片段,所以当抽屉打开时我替换我的片段并将它添加到后台。按下后退按钮时,抽屉按方面关闭。
但是当我使用
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
像这样 post:
disable the swipe gesture that opens the navigation drawer in android
它会禁用所有滑动和后退按钮导航。现在关闭抽屉的唯一方法是触摸抽屉外面的屏幕。
是否有锁定模式的替代方案并保留滑动关闭和后退按钮导航?
注意:我使用的是 Android 5.0.1
我找到了一个解决方法来实现我想要的:
最初我将抽屉模式设置为关闭。打开后,例如通过一个按钮,我解锁抽屉以再次启用关闭手势。抽屉关闭后,打开锁将重新激活。为此,我使用 ActionBarDrawerToggle
的界面
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);
}
};
我试图覆盖抽屉布局或其中的一部分,但要得到我想要的东西将是一项艰巨的工作。
我希望这个解决方案对其他人有帮助。
我想禁用通过滑动打开抽屉,但不想通过滑动或后退按钮关闭抽屉。
我在我的抽屉里使用片段,所以当抽屉打开时我替换我的片段并将它添加到后台。按下后退按钮时,抽屉按方面关闭。
但是当我使用
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
像这样 post: disable the swipe gesture that opens the navigation drawer in android 它会禁用所有滑动和后退按钮导航。现在关闭抽屉的唯一方法是触摸抽屉外面的屏幕。
是否有锁定模式的替代方案并保留滑动关闭和后退按钮导航?
注意:我使用的是 Android 5.0.1
我找到了一个解决方法来实现我想要的:
最初我将抽屉模式设置为关闭。打开后,例如通过一个按钮,我解锁抽屉以再次启用关闭手势。抽屉关闭后,打开锁将重新激活。为此,我使用 ActionBarDrawerToggle
的界面 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);
}
};
我试图覆盖抽屉布局或其中的一部分,但要得到我想要的东西将是一项艰巨的工作。
我希望这个解决方案对其他人有帮助。