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

        }
    });

必要なもの:テレビはTextView上に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 に答える