下面是scroller的经典写法 但是滑动的是控件的内容,不是控件本身
真的不是本身,控件最好带上颜色,和内容区分开,这样看的会更明显
@SuppressLint("AppCompatCustomView")
public class scrollerView extends TextView{
private final Scroller mScroller;
public scrollerView(Context context) {
this(context,null);
}
public scrollerView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public scrollerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mScroller = new Scroller(context);
}
/**
* 下面是scroller的经典写法 但是滑动的是控件的内容,不是控件本身
*/
public void smoothScrollTo(int destX ,int destY){
int scaleX = getScrollX();
int delta = -Math.abs(destX - scaleX);//正向滑动
mScroller.startScroll(scaleX,0,delta,0,2000);
invalidate();
}
@Override
public void computeScroll() {
super.computeScroll();
if(mScroller.computeScrollOffset()){
scrollTo(mScroller.getCurrX(),mScroller.getCurrY());
postInvalidate();
}
}
}
网友评论