ViewPager hide button when a specific page is displayed

2.2k Views Asked by At

Hey im trying to hide a button in my layout when a specfic page is displayed. I used the following code but it didnt seem to work for me. Any help is appriciated :)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.app_intro);

    mAdapter = new FragmentAdapter(getSupportFragmentManager());

    mPager = (ViewPager) findViewById(R.id.pager);
    final Button next = (Button) findViewById(R.id.intro_next);
    final Button skip = (Button) findViewById(R.id.intro_skip);

    mPager.setAdapter(mAdapter);

    mPager.setOnPageChangeListener(new OnPageChangeListener() {
        public void onPageScrollStateChanged(int state) {}
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
        public void onPageSelected(int position) {
            next.setVisibility(View.GONE);
        }
    });

    next.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(mPager.getCurrentItem() + 1);
        }
    });

    skip.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(5);
        }
    });

    UnderlinePageIndicator indicator = (UnderlinePageIndicator) findViewById(R.id.indicator);
    mIndicator = indicator;
    indicator.setViewPager(mPager);
    indicator.setBackgroundColor(0xFFCCCCCC);
    indicator.setFades(false);
}
2

There are 2 best solutions below

0
On BEST ANSWER

Thank you all for trying to help me. It looks like I found my own answer. For future readers, when using ViewPager with ViewPagerIndicator, always set OnPageChangeListener to the indicator and not the viewpager as for some reason it doesn't work that way.

 indicator.setOnPageChangeListener`

instead of:

 mPager.setOnPageChangeListener
1
On

I wish I could make this a comment but c'est la vie... Can you be more specific about how this is not working? Does the button hide for when any page is selected? If this is not what you are looking for you'd need something like:

private final int page=3;

public void onPageSelected(int position){
    if(position == page){
        next.setVisibility(View.Gone);
    }