GraceViewPager icon indicating copy to clipboard operation
GraceViewPager copied to clipboard

ViewPager宽度变化时位置错误

Open wurensen opened this issue 3 years ago • 1 comments

原因: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);
        }
    }

wurensen avatar Aug 06 '20 06:08 wurensen

自定义的GraceViewPager能够很好的解决宽度变化的问题,在不使用GraceViewPager而是使用原生ViewPager通过添加支持的方式,在设置了pageMargin的情况下去逆向计算调用了recomputeScrollPosition“纠正”前的scrollX值,会存在计算误差。

wurensen avatar Aug 21 '20 09:08 wurensen