3

我的应用程序使用 ViewPager 支持 v4,我的一个视图在页面内有一个 Horizo​​ntalScrollView,在 4.0 版本中它可以正常滚动,但运行 2.2 版本时,ViewPager 正在移动到下一个。

有什么建议吗?

4

1 回答 1

10

也许你可以试试这个:

public class CustomViewPager extends ViewPager {

public CustomViewPager(Context context) {
    super(context);
}

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if(v instanceof HorizontalScrollView){
        return true;
    }
    return super.canScroll(v, checkV, dx, x, y);
}

}

解释:

这将告诉 viewpager 如果您滚动的视图中的视图是水平列表视图,那么他需要忽略滚动并让水平滚动“处理它”,但您需要记住任何滚动(水平scroll) 水平滚动视图之外将使您的 viewpager 更改页面,此外,如果您从外部滚动到内部(您的手指在平板电脑之外并进入),viewpager 将忽略此行为并移动页面。

于 2012-08-20T21:46:16.287 回答