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
ページカード切り替えリスニングで現在のアイテムを設定