当特定 child 具有焦点时禁用 ViewPager 滚动

Disable ViewPager scrolling when specific child has focus

我知道有几个答案描述了如何锁定 ViewPager

但我希望我的 ViewPager 仅在触摸未发生在特定 child 上时才能够滚动。

那么我如何"filter" 找出哪些 child 视图被触及了?

我想如何锁定 ViewPager:

的示例代码
for (Integer resource:mResources) {
        if(resource.intValue()==view.getId()){
            touchTriggeredOnView(view.getId());
        }
    }

我想这样做的原因是,我有一个自定义视图需要检测滑动手势。 此自定义视图是 Fragment 的 child,FragmentViewPager.

的 child

所以:ViewPager->Fragment->CustomView.

我能够检测到 DOWN 但不能检测到 CustomView 中的 FLING 事件。

我认为 ViewPager 捕获了 FLING 事件 --> 不好。

希望我的问题够清楚了。

Android 中的

onTouch and gesture listeners 具有布尔值 return,指示事件(触摸、猛击、点击)是否被消耗。

ViewPager 可能会消耗 "Fling" 事件,但是您可以覆盖 onTouch、ViewPager 中的手势侦听器和 return false - 因此不会消耗触摸事件并将其传递给您的自定义视图。