android - 滑动手势防止点击下方
问题描述
我需要观察活动的一个区域(片段 1 和 2),以便向下滑动手势,这将关闭活动。
我无法将滑动手势添加到整个活动中,因为 Fragment 3 需要刷新并且它们是相互冲突的动作。到目前为止,我已经尝试过:
添加一个涵盖片段 1 和 2 的视图并在那里添加侦听器。但是我需要在片段 1 中处理 ontouchevents。当我将 ontouchlistener 添加到新视图时,它确实关闭了活动,但阻止了点击到片段 1,因为我必须从 onDown 返回 true 以允许点击 onFling 覆盖
private fun setUpSwipeToDismissActivity() { gestureDetector = GestureDetector(object : SimpleOnGestureListener() { override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { println("****** on fling") val diffY = e2.rawY - e1.rawY if (abs(diffY) > SWIPE_THRESHOLD && abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) { if (diffY > 0) { finish() overridePendingTransition(R.anim.activity_alpa, R.anim.activity_slide_out_down) } } return false } override fun onDown(e: MotionEvent?): Boolean { return false } }) swipe_detector_view.setOnTouchListener(touchListener)
}
将滑动手势移动到片段 1,但它无法处理单击事件,因为 onDown 返回 true,然后触发投掷覆盖。
所以我需要能够滑动以关闭活动,但也允许片段 1 上的点击事件。
额外 - 片段 1 是一个 Web 视图,其中包含要单击的按钮
解决方案
推荐阅读
- python - Tcl_AsyncDelete 与 pynput 和 pyautogui
- xcode - 使用 AVPlayer 在 macOS SwiftUI 应用程序中播放本地视频文件
- ios - 如何设置 UIView 在 mapView 上接收输入
- css - alignItem:中心在包含材质按钮的 flex 容器中不起作用
- javascript - Vuelidate 问题与 requireif 中的“this”引用
- python - 如何定义一个函数以基于另一个变量创建具有特定名称的变量?(Python 3)
- salesforce - 是否可以直接执行非测试 Apex 代码?
- dask - Dask 计算(以捕获错误),但将结果保留在工作人员身上
- ios - 从结构访问信息
- html - 当有图像时,jQuery问题仅从表格单元格中选择文本