- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何禁用 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/
这实际上是我问的问题的一部分here ,该问题没有得到答复,最终被标记为重复。 问题:我只需使用 @Autowired 注释即可使用 JavaMailSender。我没有通过任何配置类公开它。 @Co
我是一名优秀的程序员,十分优秀!