I want to know that the ViewPagers View has scrolled half the screen or not?
While I am dragging it, if it has covered half the screen I want to change
Use OnPageChangeListener's methods. The onPageScrolled method returns positionOffset > 0.5 if user scrolled more than half of the screen. http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html
I assume You want to update some static views when page is scrolled by half of screen without waiting for it to scroll full page width. Here is my solution for this problem using onPageScrolled callback.
@Override
public void onPageScrolled( int position , float positionOffset , int positionOffsetPixels )
{
if ( position == mCurrentSelectedScreen )
{
// We are moving to next screen on right side
if ( positionOffset > 0.5 )
{
// Closer to next screen than to current
if ( position + 1 != mNextSelectedScreen )
{
mNextSelectedScreen = position + 1;
updateStaticViewsForScreen( mNextSelectedScreen );
}
}
else
{
// Closer to current screen than to next
if ( position != mNextSelectedScreen )
{
mNextSelectedScreen = position;
updateStaticViewsForScreen( mNextSelectedScreen );
}
}
}
else
{
// We are moving to next screen left side
if ( positionOffset > 0.5 )
{
// Closer to current screen than to next
if ( position + 1 != mNextSelectedScreen )
{
mNextSelectedScreen = position + 1;
updateStaticViewsForScreen( mNextSelectedScreen );
}
}
else
{
// Closer to next screen than to current
if ( position != mNextSelectedScreen )
{
mNextSelectedScreen = position;
updateStaticViewsForScreen( mNextSelectedScreen );
}
}
}
}
@Override
public void onPageSelected( int arg0 )
{
updateStaticViewsForScreen( arg0 );
mCurrentSelectedScreen = arg0;
mNextSelectedScreen = arg0;
}