Android viewpagerスライドリスニング
1278 ワード
viewpagerがページ切り替え機能を実現する前から使用していました
最近出会ったこのような需要は、viewpagerが5つのページカードを含んでいると仮定し、最初のページにスライドしたときに左へスライドして最初のページにスライドし、最後のページにスライドしたときに右へスライドして最後のページにスライドしたと仮定しています.
考えてみればviewpagerの中の方法を書き直すべきだと思います.
一つ一つ探してみると、こんな方法があることがわかりましたonPageScrolled.
そして私はこの考えでこう書きました
カスタムviewpager 2つのメソッドを追加
private int pos = 0;
private int maxPos = 0;
/**
* viewpager
* @param position
*/
public void setMaxPage(int position)
{
maxPos = position;
}
/**
* viewpager
* @param position
*/
public void setCurrentPos(int position)
{
pos = position;
}
このonPageScrolledメソッドを書き換える
@Override
protected void onPageScrolled(int arg0, float arg1, int arg2) {
Log.e("suo", "arg0:" + arg0 +"|arg1:" + arg1 +"|arg2:" + arg2);
if(pos == 0){
if(arg2 == 0){
Log.e("suo", " ");
}
}else if(pos == maxPos-1)
{
if(arg2 == 0){
Log.e("suo", " ");
}
}
super.onPageScrolled(arg0, arg1, arg2);
}
クラスファイルのviewpagerの初期化時に最大値を設定し、
/**
*
*/
public class MyOnPageChangeListener implements OnPageChangeListener
ページカード切り替えリスニングで現在のアイテムを設定