android ViewPager - 检测页面滚动状态

时间:2013-02-21 12:31:39

标签: android android-viewpager

我有一个ViewPager的监听器:

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) {

        }
    });

我需要的是:电视是TextView之上的ViewPager,目前用户移动页面时文本会发生变化(即使注册的动作很少)。我想仅在页面向左或向右移动50%或更高时才更改文本。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

我解决了如下,

初始化变量。

static int mPageLastScreen=0;

然后在onPageScrolled方法中添加if语句。

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

我知道这是迟到的回复。 希望它可以帮助某人:)