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