1

这可能看起来很奇怪,但我想使用两个嵌套的滚动视图。在某些时候,外部滚动视图需要停止滚动并将所有滚动行为传递给内部滚动视图。

我的布局看起来像这样。

<CustomOuterScrollView>
   <LinearLayout/>
   <CustomInnerScrollView/>
</CustomOuterScrollView>

我创建了两个类来覆盖 onInterceptTouchEvent。对于 CustomOuterScrollView,如下所示:

    @Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
    if ( stopScrolling )
    {
        return false;
    } else
    {
        return super.onInterceptTouchEvent( ev );
    }
}

而对于 CustomInnerScrollView 这看起来就像这样:

    @Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
    return true;
}

现在,我遇到的最大问题如下。在 stopScrolling 变量设置为 true 之后,outerscrollview 不再使用事件,而是将它们传递给 CustomInnerScrollView。当我调试时,实际上涉及到 onInterceptTouchEvent。唯一的问题是 InnerScrollView 不会滚动。任何有想法的人?我知道这通常不会使用嵌套的滚动视图来完成。但由于设计问题,不可能做其他事情。

4

0 回答 0