gpt4 book ai didi

java - 对于 DrawerLayout,仅用两根手指滑动即可打开菜单抽屉

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:02 25 4
gpt4 key购买 nike

如何禁用 DrawerLayout 的单指菜单抽屉打开(从左向右滑动),但允许用两根手指滑动打开菜单抽屉?

单指滑动不会打开抽屉菜单,但 subview 能够处理触摸事件。仅禁止单指滑动菜单打开功能。

更新:我读过这个非常有用的主题:( Android: Difference between onInterceptTouchEvent and dispatchTouchEvent? ) 。

所以我决定重写方法onInterceptTouchEvent
public boolean onInterceptTouchEvent(MotionEvent arg) {
if (arg.getPointerCount() < 2 && !this.isDrawerOpen(this.listView)) {
return true;
} else {
return super.onInterceptTouchEvent(arg);
}
}

但是显然它不会将触摸事件发送到 subview 。我想我必须使用 LOCK_MODE_LOCKED_CLOSED为了控制抽屉的启用/禁用。我稍后会在这里发布该解决方案。

最佳答案

我认为这是使用LOCK_MODE来完成此任务的解决方案,如果有人有更好的东西,请分享:

@Override
public boolean onInterceptTouchEvent(MotionEvent arg) {
if (arg.getPointerCount() < 2) {
if (!this.isDrawerOpen(this.listView)) {
// The drawer is locked closed. The user may not open it.
this.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}
} else {
// The drawer is unlocked.
this.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}

return super.onInterceptTouchEvent(arg);
}

关于java - 对于 DrawerLayout,仅用两根手指滑动即可打开菜单抽屉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com