Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
860 views
in Technique[技术] by (71.8m points)

android - Disable ViewPager scrolling animation

From the code here, I have a ViewPager that sets an adapter. Is there any way to disable the scrolling animation so that it just "jumps" to the new page when I swipe? I'm not looking to disable the whole scrolling function in onTouchEvent and onInterceptTouchEvent, just the sliding animation.

mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = (CustomViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I do not know if there is a clean solution. But you can use a trick and undo the standard page transformer with another transformer. The NoPageTransformer would look like this:

private static class NoPageTransformer implements ViewPager.PageTransformer {
    public void transformPage(View view, float position) {
        if (position < 0) {
            view.setScrollX((int)((float)(view.getWidth()) * position));
        } else if (position > 0) {
            view.setScrollX(-(int) ((float) (view.getWidth()) * -position));
        } else {
            view.setScrollX(0);
        }
    }
}

To add it to your ViewPager, call:

mViewPager.setPageTransformer(false, new NoPageTransformer());

Will work in SDK version 16 and above.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...