4

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

        }
    });

我需要的是: tv 是 tvTextView之上的ViewPager,目前文本会在用户移动页面后立即更改(即使注册的移动很少)。仅当页面向左或向右移动 50% 或以上时,我才想更改文本。有什么建议么?

4

1 回答 1

4

我解决如下,

初始化变量。

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

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

于 2015-09-08T13:07:19.870 回答