0

アプリに 20 個の画像があります。ユーザーがアプリで左右にスワイプすると、ViewPager を使用して前/次の画像を表示しますか?? ユーザーが最後の画像で右にスワイプしたときに「リピート」画面を表示したいと思います..

ここに私のコードがあります、

viewPager = (ViewPager) findViewById(R.id.main_viewpager);

ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);

PageListener pageListener = new PageListener();
viewPager.setOnPageChangeListener((OnPageChangeListener) pageListener);

int currentPage;
private class PageListener extends SimpleOnPageChangeListener{ 

        public void onPageSelected(int position) {
                --- some code -----
                currentPage = position;
        }
}

private class ImagePagerAdapter extends PagerAdapter {

     @Override
     public int getCount() {
          return mImages.size();
     }

     -- other implemented methods ---
}

ユーザーがビューページャーの最後の要素の右にスワイプしたときにイベントをキャプチャすることは可能ですか??

4

3 に答える 3

1

開始したように、ViewPager にカスタム onChangePageListener を設定することで、これを実現できます。私はそれを次のようにします:

viewPager.setOnPageChangeListener(new OnPageChangeListener() {
 //...
 @Override
public void onPageSelected(int arg0) {
  onPageChanged(arg0);
}
 //...
});

そして、あなたの活動で

public void onPageChanged(int position) {
 if(position == SOMETHING) //do something
}

お役に立てれば

于 2013-07-07T16:40:27.770 に答える
0

あなたができることは、ビューページャーのインスタンスを取得して呼び出すことです:

PagerAdapter pg = viewPager.getAdapter();
int i = pg.getCount();

これにより、viewPager のページ数が返されます。今できることは次のとおりです。現在のページを合計数でチェックする条件を適用します...最初のページが [0] 2 番目が [1] で 3 番目が [2] であることに注意してください...現在のページ数は...によって返されます

viewPager.getCurrentItem()

これで問題が解決することを願っています!

于 2013-07-07T17:12:31.990 に答える