日本語の記事があんまりなかったので書いておきます。
ページが切り替わる度に、ページ番号を取得して何らかの処理を行うコードです。
(用途としては例えば、現在のページ番号をTextViewに表示するとか。
pagerはViewPagerのインスタンスを参照しているものとします。
ソースコード
pager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { if(state == ViewPager.SCROLL_STATE_SETTLING) { int page = pager.getCurrentItem(); /* ここにしたい処理を書く。例えば、 textView.setText(String.valueOf(page)); という感じ */ } } });
要点
- OnPageChangeListenerというリスナを設定します。
- スワイプしてページが切り替わるとonPageScrollStateChanged()が呼ばれ、stateにはViewPager.SCROLL_STATE_SETTLINGが入っています。
- getCurrentItem()を使うと、現在のページを取得することが出来ます。
備考
onPageSelected()で渡されるpositionでは上手く行きませんでした。