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