我有一个VerticalViewPager,其中每个子片段都包含类似

<MyScrollView>
    <LinearLayout orientation=vertical>
        ...
        ...
    </LinearLayout>
</MyScrollView>

MyScrollView滚动到底部时,我希望VerticalViewPager发挥作用并发挥作用。同样,如果我将MyScrollView滚动到最顶部。

我已经做了很多尝试来拦截ScrollView中的触摸事件,从而以某种方式将MotionEvent分配给VerticalViewPager,而没有任何好运。

这显然是行不通的,但是为了使对话顺利进行,我目前在MyScrollView中执行以下操作
override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean {
    return super.onInterceptTouchEvent(ev) && atBottom
}

override fun onScrollChanged(l: Int, t: Int, oldl: Int, oldt: Int) {
    atBottom = getChildAt(0).bottom <= (height + scrollY)
    super.onScrollChanged(l, t, oldl, oldt)
}

这是摇摇欲坠和不可信任的,而且根本不可行。任何输入,不胜感激!

最佳答案

解决方案可能与这里的解决方案非常相似:
(原始答案适用于Webview,但逻辑相同)

Scroll webview horizontally inside a ViewPager

关于android - 将触摸事件从ScrollView委托(delegate)给垂直ViewPager,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49238797/

10-10 01:07