Android ViewPager Prev/Next Button

后端 未结 9 918
北荒
北荒 2020-12-08 04:00

Okay, so I\'m developing an Android app that utilises a ViewPager to display pages.

Within each page, I have a set of buttons to use for navigating between pages (in

9条回答
  •  春和景丽
    2020-12-08 04:38

    Do it like this:

    backButton=(Button)findViewById(R.id.back_button);
    nextButton=(Button)findViewById(R.id.next_button);
    backButton.setVisibility(View.INVISIBLE);//you can use GONE or even disable it. It depends on your layout 
    
    
        nextButton.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View view) {
                viewPager.setCurrentItem(viewPager.getCurrentItem()+1, true);
            }
        });
    
    
        backButton.setOnClickListener(new OnClickListener() {
    
            @Override
            public void onClick(View view) {
                viewPager.setCurrentItem(viewPager.getCurrentItem()-1, true);
            }
        });
    }
    

    To prevent IndexOutOfBoundsException you should hide and show the two buttons like this :

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
    
            }
            @Override
            public void onPageSelected(int position) {
                if(position==0) {
                    backButton.setVisibility(View.INVISIBLE);
                }else  {
                    backButton.setVisibility(View.VISIBLE);
                }
                if(position < viewPager.getAdapter().getCount()-1 ) {
                    nextButton.setVisibility(View.VISIBLE);
                }else  {
                    nextButton.setVisibility(View.INVISIBLE);
                }
            }
            @Override
            public void onPageScrollStateChanged(int i) {
    
            }
        });
    

提交回复
热议问题