gpt4 book ai didi

java - 除非先选择 View ,否则 requestDisallowInterceptTouchEvent 不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:01 25 4
gpt4 key购买 nike

根据 android 文档,您可以获得父级 ViewGroup 并对其调用 requestDisallowInterceptTouchEvent(true) 以阻止其他事物的干扰。这不仅会导致直接父对象,还会导致任何其他可能拦截触摸的父对象在特定事件期间忽略它...

这听起来不错,似乎在较新的设备(我的是 android 4.1)上工作正常,但较旧的设备(即 2.3.3)它不起作用,除非我先单击我的 ScrollView 然后滚动它,否则其他父级可 ScrollView 可能仍然会干扰。

我在 View.OnTouchListener 中为可滚动的 child 发送请求。

知道如何在不借助编写自定义子类来检查运动事件等的命中矩形的情况下自动完成这项工作吗?

最佳答案

我在使用 2.3 时也遇到了一些问题,禁止会间歇性地起作用。

我过去常常调用 view.requestDisallowInterceptTouchEvent(true) 而不管 event.getAction()。

然后我努力成为一个好公民,并将我在 onTouch() 方法中的代码更改为以下内容:

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
v.requestDisallowInterceptTouchEvent(false);
break;
default:
break;
}

请记住,此方法(或引用 View 下的其他一些 View )必须返回 true 才能让父级遵守禁止请求。

不确定这是否会解决您的问题,但值得一试。

关于java - 除非先选择 View ,否则 requestDisallowInterceptTouchEvent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com