这可能看起来很奇怪,但我想使用两个嵌套的滚动视图。在某些时候,外部滚动视图需要停止滚动并将所有滚动行为传递给内部滚动视图。
我的布局看起来像这样。
<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 不会滚动。任何有想法的人?我知道这通常不会使用嵌套的滚动视图来完成。但由于设计问题,不可能做其他事情。