gpt4 book ai didi

android - 如何为包含 ScrollView 的布局添加触摸事件

转载 作者:搜寻专家 更新时间:2023-11-01 09:06:24 25 4
gpt4 key购买 nike

问题是滚动将拦截触摸事件已设置为父 layout。我可以将 onTouch 事件与 ScrollView 中的滚动一起保留吗?

最佳答案

这是一个非常棘手的部分。 Activity 中有一个覆盖方法,它是:public boolean onTouchEvent(MotionEvent event)

这是解释整个屏幕上所有触摸事件的通用方法。你可以说,“好的,我可以实现这个,我很高兴......”。这是关于 android 如何工作的困难部分。

如您所知,每个 View 都有自己的 onTouchEvent() 方法,您可以实现该方法以添加一些自定义实现。那么哪个方法会监听呢? ScrollView 还是 Activity?看起来这些触摸事件是从“内部”元素到“外部”元素。我是说亲子关系。

另一件需要考虑的事情是 onTouchEvent 方法返回一个 bool 值。这个 bool 参数决定触摸事件是向上一级还是由当前的 View 处理。这意味着如果你有一个 CustomViewA 实现了 onTouchEvent() 和 CustomViewB 实现了它自己的触摸事件,并且 A 是 B 中的一个 child ,那么触摸事件将通过A 首先,如果不处理,它将转到 B。

所以基本上是可以做到的。这取决于您想执行的触摸事件。

所以在我们的例子中,当触摸事件是水平的时,ScrollView 返回 true。仅当 ScrollView 触摸事件未自行处理时, Activity 的触摸事件才会被处理,那么您就可以了。否则你必须覆盖并实现 ScrollView 的触摸事件,在某些情况下你必须返回 false 以便整个布局实现它。最后一部分祝你好运。我开始实现 throw 效果,但遇到了一些困难,所以我实现了一个带有 ScrollView 的 2 指移动,效果非常好。

这是大约一周的研究和实验,它是对我的想法的概述。如果您发现其他任何内容,请告诉我。希望对您有所帮助。

关于android - 如何为包含 ScrollView 的布局添加触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596157/

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