[英]How to use android:usesCleartextTraffic below Marshmallow (API-23)
[英]How to make View.OnScrollChangeListener works on ViewPagger for android version 23 (Marshmallow) and below
View.setOnScrollChangeListener
已添加到版本23中。我们希望它也适用于以下版本。 为此,我们可以自定义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);
}
然后,您可以创建一个自定义ViewPager
类
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
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.