Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅用两个手指滑动抽屉布局即可打开菜单抽屉_Java_Android_Touch_Swipe_Drawerlayout - Fatal编程技术网

Java 仅用两个手指滑动抽屉布局即可打开菜单抽屉

Java 仅用两个手指滑动抽屉布局即可打开菜单抽屉,java,android,touch,swipe,drawerlayout,Java,Android,Touch,Swipe,Drawerlayout,如何禁用抽屉布局的单指菜单抽屉打开(从左向右滑动),但允许双指滑动打开菜单抽屉 单指滑动不打开抽屉菜单,但子视图能够处理触摸事件。只有菜单打开功能禁止单指刷卡 更新:我读了这个非常有用的主题:() 所以我决定在InterceptTouchEvent上重写方法 公共布尔值onInterceptTouchEvent(MotionEvent arg){ if(arg.getPointerCount()

如何禁用抽屉布局的单指菜单抽屉打开(从左向右滑动),但允许双指滑动打开菜单抽屉

单指滑动不打开抽屉菜单,但子视图能够处理触摸事件。只有菜单打开功能禁止单指刷卡

更新:我读了这个非常有用的主题:()

所以我决定在InterceptTouchEvent上重写方法
公共布尔值onInterceptTouchEvent(MotionEvent arg){
if(arg.getPointerCount()<2&!this.isDrawerOpen(this.listView)){
返回true;
}否则{
返回super.onInterceptTouchEvent(arg);
}
}

然而,很明显,它不会向儿童视图发送触摸事件。
我想我必须使用
LOCK\u MODE\u LOCKED\u CLOSED
来控制抽屉的启用/禁用。我稍后会在这里发布该解决方案。

我认为这是使用
锁定模式
执行此任务的解决方案,如果有人有更好的解决方案,请分享:

@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);
}
@覆盖
公共布尔值onInterceptTouchEvent(MotionEvent参数){
if(arg.getPointerCount()<2){
如果(!this.isDrawerOpen(this.listView)){
//抽屉已锁定关闭。用户可能无法打开它。
此.setDroperLockMode(抽屉布局.LOCK\u MODE\u LOCKED\u CLOSED);
}
}否则{
//抽屉没锁。
此.setDroperLockMode(DroperLayout.LOCK_MODE_UNLOCKED);
}
返回super.onInterceptTouchEvent(arg);
}