Android UI设计 ViewPager 中嵌套HorizontalScrollView

时间:2022-09-08 12:03:23

在开发的过程中,viewpager有的时候需要嵌套HorizontalScrollView,但是会遇到一种情况就是HorizontalScrollView的滑动事件被viewpager截取了,导致HorizontalScrollView无法工作。看了下网上的文章在*看到了一个解决方案。需要是重写这个HorizontalScrollView:

public class TestScrollView extends HorizontalScrollView
{
public TestScrollView(Context p_context, AttributeSet p_attrs)
{
super(p_context, p_attrs);
}

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

@Override
public boolean onTouchEvent(MotionEvent p_event)
{
if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null)
{
Log.d("DEBUG", "intercept move event");
getParent().requestDisallowInterceptTouchEvent(true);
}

return super.onTouchEvent(p_event);
}

}
使用这个方法后,就可以正常使用HorizontalScrollView滑动功能了。