Android 滚动视图中的滚动视图
这可能看起来很奇怪,但我想使用两个嵌套的滚动视图。在某些时候,外部scrollview需要停止滚动,并将所有滚动行为传递给内部scrollview 我的布局看起来像这样Android 滚动视图中的滚动视图,android,android-scrollview,Android,Android Scrollview,这可能看起来很奇怪,但我想使用两个嵌套的滚动视图。在某些时候,外部scrollview需要停止滚动,并将所有滚动行为传递给内部scrollview 我的布局看起来像这样 <CustomOuterScrollView> <LinearLayout/> <CustomInnerScrollView/> </CustomOuterScrollView> 对于CustomInnerScrollView,如下所示: @Override
<CustomOuterScrollView>
<LinearLayout/>
<CustomInnerScrollView/>
</CustomOuterScrollView>
对于CustomInnerScrollView,如下所示:
@Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
return true;
}
现在,我最大的问题是以下几点。在stopScrolling变量设置为true之后,outerscrollview不再使用事件,而是将它们传递给CustomInnerScrollView。当我调试时,它实际上进入了onInterceptTouchEvent。唯一的问题是InnerScrollView不会滚动。谁有主意?我知道使用嵌套的滚动视图通常不会这样做。但由于设计问题,无法执行其他操作。也许您应该在onInterceptTouchEvent中区分当前滚动的视图,如果是内部视图,则反转if语句?以获得建议。但是,没有区分所需的滚动视图。outerview需要获得所有滚动行为,直到滚动约50%,然后innerscrollingview开始滚动。好,然后在onInterceptTouchEvent中放入一个if子句,在已经存在的if子句中检查这50%,我想您已经知道如何确定这一点,以及是否达到了这50%——返回super.onInterceptTouchEvent ev;例如,stopScrolling变量确定此状态。那么对于CustomInnerScrollView部分,您不能只返回super.onInterceptTouchEvent ev;而不是真的?我认为这是真的,只是禁用了滚动。
@Override
public boolean onInterceptTouchEvent( MotionEvent ev )
{
return true;
}