如何知道ViewPager上滚动半个屏幕在Android中 [英] How to know ViewPager has scrolled half the screen in android

查看:278
本文介绍了如何知道ViewPager上滚动半个屏幕在Android中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿我是新到Android,我想知道的是 ViewPager 观上滚动半个屏幕与否?当我拖着它。如果已覆盖半个屏幕我想改变页面。
对于如。如果我测试的屏幕宽度320像素的MDPI即,如果我拖我的ViewPager页160像素然后我想改变页面。如何获得由ViewPager鉴于此覆盖一半的距离。

Hey there i am new to android, I want to know is 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 the page. For eg. If i am testing on MDPI i.e of screen width 320px, And if i drag my page of ViewPager by 160px then i want to change the page. how to get this half distance covered by view from ViewPager.

请帮我这个!

推荐答案

使用OnPageChangeListener的方法。该onPageScrolled方法返回positionOffset> 0.5,如果用户超过一半的屏幕滚动以上。
<一href=\"http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html\">http://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html

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

我假设你想在网页是由屏幕的一半,而不必等待它完全滚动页面宽度滚动更新一些静态的观点。这是我使用onPageScrolled回调这个问题的解决方案。

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;
}

这篇关于如何知道ViewPager上滚动半个屏幕在Android中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆