4

I have a ViewPager with a Listener:

viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg0) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (position == 0) { tv.setText("first Item"); } else tv.setText(titleStringArray[position]); } @Override public void onPageScrollStateChanged(int arg0) { } }); 

What I need: tv is a TextView above the ViewPager, currently the text changes as soon as the user has moved the page (even very little movement is registered). I want to change the text ONLY if the page was moved to left or right by 50% or above. Any suggestions?

2
  • it seems to me that you're trying to do some type of title on your pages. So why not use the PagerTitleStrip?? developer.android.com/reference/android/support/v4/view/… It could make a lot of stuff easier for you. Ps.: I'm posting as a comment because I'm aware that I'm not answering your question, but supplying possible alternatives. Commented Feb 21, 2013 at 12:35
  • Thanks. Yeah I know about the titleStrip, but my ViewPager is just 60dp x 200dp, so in that case that really doesn't matter if I use a TitleStrip or just a TextView Commented Feb 21, 2013 at 13:11

1 Answer 1

4

I solved as follows,

Initialize variable.

static int mPageLastScreen=0; 

then add if statement in onPageScrolled method.

viewPager.setOnPageChangeListener(new OnPageChangeListener() { public void onPageScrollStateChanged(int state) {} public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if(mPageLastScreen!=position) { Log.d("page scrolled", "Page scrolled"); mPageLastScreen=position; } } public void onPageSelected(int position) {} }); 

I know it is Late reply. Hope it helps someone:)

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.