PagerAdapter start position PagerAdapter start position android android

PagerAdapter start position


I've found a way to set it's position, which is done outside of the class:

 awesomePager = (ViewPager) findViewById(R.id.awesomepager); awesomePager.setAdapter(awesomeAdapter); awesomePager.setCurrentItem(CurrentPosition);

and it can be limited by calculating the amount of items I want to fit in to it


I have noticed that if you recreate Activity (orientation change) with ViewPager having FragmentStatePagerAdapter, then the Adapter will reuse it's Fragments. The way to stop it is:

@Overridepublic void onSaveInstanceState(Bundle savedInstanceState) {    if (viewPager != null) {        // before screen rotation it's better to detach pagerAdapter from the ViewPager, so        // pagerAdapter can remove all old fragments, so they're not reused after rotation.        viewPager.setAdapter(null);    }    super.onSaveInstanceState(savedInstanceState);}

but then after Activity recreation ViewPager alwayes opens page 0 first and setCurrentItem(CurrentPosition); doesn't work. Fix for that is changing page after delay:

new Handler().postDelayed(new Runnable() {    @Override    public void run() {        viewPager.setCurrentItem(newPosition);    }}, 100);


To start with the last fragment I did this:

PagerAdapter pagerAdapter = new PagerAdapter();viewPager.setAdapter(pagerAdapter);viewPager.setCurrentItem(pagerAdapter.getCount() - 1);