我扩展了一个FrameLayout并覆盖了 onInterceptTouchEvent()和 onTouchEvent()。此自定义Framelayout将是ListView行的根布局。
我的要求是,如果我点击ListView中的一行,应该调用onItemClickListener,如果我滚动(向上/向下)列表像往常一样滚动。但是,如果我滚动(向左/向右)或滑动(向左/向右),自定义FrameLayout应根据我执行操作的行执行一些操作。
我的想法是,我会覆盖 onInterceptTouchEvent ,监控事件,如果我看到ACTION_MOVE被调用足以使其成为滚动/滑动,那么我就会控制并完成任务。如果是点击或其他手势,则让默认流程发生。
我现在遇到的问题是,如果我的framelayout不包含任何可触摸的孩子,那么我在ACTION_DOWN后没有收到任何电话。如果我在 onTouchEvent()中收到ACTION_DOWN以分析手势的类型,那么如果我计算并发现该操作实际上只是点击/垂直滚动。
孩子是否可以通过某种方式获取事件(ACTION_DOWN和ACTION_MOVE),如果条件满足则执行操作或让父母处理这些相同的事件?
我可以采取其他方法来满足这一要求吗?