GraceViewPager
GraceViewPager copied to clipboard
ViewPager宽度变化时位置错误
原因:ViewPager的onSizeChanged中进行了滚动位置的重新计算
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
// Make sure scroll position is set correctly.
if (w != oldw) {
recomputeScrollPosition(w, oldw, mPageMargin, mPageMargin);
}
}
自定义的GraceViewPager能够很好的解决宽度变化的问题,在不使用GraceViewPager而是使用原生ViewPager通过添加支持的方式,在设置了pageMargin的情况下去逆向计算调用了recomputeScrollPosition“纠正”前的scrollX值,会存在计算误差。