Skip to content Skip to sidebar Skip to footer

Viewpager Set Current Page Programmatically

I wrote a custom ViewPager to disable Swipe Scroll, but I want to swipe programmatically. I have three Tab in my view pager, but when I call viewPager.setCurrentItem(viewPager.getC

Solution 1:

viewPager.setCurrentItem(idx);

where idx is 0 based integer.

Solution 2:

In your PagerActivity use

    viewPager = (ViewPager) findViewById(R.id.view_pager);
    viewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener() {
        @OverridepublicvoidonPageSelected(int position) {
            intpagei= position + 1;
            pages=pagei + "";

            Toast.makeText(PagerActivity.this, getString(R.string.changeinfopage) + " " + pages, Toast.LENGTH_SHORT).show();
        }

        @OverridepublicvoidonPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @OverridepublicvoidonPageScrollStateChanged(int state) {
        }
    });

and

@OverridepublicbooleanonOptionsItemSelected(MenuItem item) {


        switch (item.getItemId()) {

            case R.id.action_previous:

                viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
                returntrue;

            case R.id.action_next:

                viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
                returntrue;
        }

        returnsuper.onOptionsItemSelected(item);

   }

Solution 3:

try this :

  viewPager.postDelayed(newRunnable() {

    @Overridepublicvoidrun() {
        viewPager.setCurrentItem(position);
    }
}, 10);

sometimes, setCurrentItem on viewpager doesn't work. As pager's content was controlled by a spinner. both the spinners and the pagers state were restored onResume, and because of this the spinners onItemSelected listener was called during the next event propagation cycle.

By using handler we can make this work because it set the pagers current position after the onItemSelected event fired.

Post a Comment for "Viewpager Set Current Page Programmatically"