0
View.setOnScrollChangeListener
がバージョン23に追加されました。 以下のバージョンでも動作します。 はこれを行うために、私たちはその後、カスタムViewPager
クラスを作成することができ、View.OnScrollChangeListenerを作成する方法は、アンドロイド版23(Marshmallow)のViewPaggerで動作し、
View.setOnScrollChangeListener
がバージョン23に追加されました。 以下のバージョンでも動作します。 はこれを行うために、私たちはその後、カスタムViewPager
クラスを作成することができ、View.OnScrollChangeListenerを作成する方法は、アンドロイド版23(Marshmallow)のViewPaggerで動作し、
まずscrollTo()
機能をカスタマイズ正確View.OnScrollChangeListener
public interface CustomOnScrollChangeListener {
/**
* Called when the scroll position of a view changes.
*
* @param v The view whose scroll position has changed.
* @param scrollX Current horizontal scroll origin.
* @param scrollY Current vertical scroll origin.
* @param oldScrollX Previous horizontal scroll origin.
* @param oldScrollY Previous vertical scroll origin.
*/
void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY);
}
からそれを得る独自のリスナーを作成することができます
public class CustomPager extends ViewPager {
private int mScrollingX, mScrollingY;
private CustomOnScrollChangeListener mListener;
public CustomPager(Context context) {
super(context);
}
public CustomPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setCustomScrollChangeListener(CustomOnScrollChangeListener listener) {
mListener = listener;
}
@Override
public void scrollTo(@Px int x, @Px int y) {
super.scrollTo(x, y);
if (mScrollingX != x || mScrollingY != y) {
int oldX = mScrollingX;
int oldY = mScrollingY;
mScrollingX = x;
mScrollingY = y;
invalidate();
mListener.onScrollChange(this, mScrollingX, mScrollingY, oldX, oldY);
if (!awakenScrollBars()) {
postInvalidateOnAnimation();
}
}
}
}
そして、今すぐ使用することができます。
mViewPager.setCustomScrollChangeListener(new CustomOnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX,
int oldScrollY) {
//Put your logic code here
}
});