import android.content.Context;
import android.support.v7.widget.AppCompatTextView;
import android.text.method.ScrollingMovementMethod;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class ScrollTextView extends AppCompatTextView {
private final float mLastDefY = -1f;
float mLastY;
public ScrollTextView(Context context) {
super(context);
setMovementMethod(ScrollingMovementMethod.getInstance());
}
public ScrollTextView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
setMovementMethod(ScrollingMovementMethod.getInstance());
}
public ScrollTextView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
setMovementMethod(ScrollingMovementMethod.getInstance());
}
public boolean onTouchEvent(MotionEvent motionEvent) {
int action = motionEvent.getAction();
if (action == 0) {
this.mLastY = motionEvent.getY();
getParent().requestDisallowInterceptTouchEvent(true);
} else if (action == 2) {
float y = motionEvent.getY() - this.mLastY;
if (this.mLastY != mLastDefY) {
if (y > 0.0f) {
this.mLastY = mLastDefY;
getParent().requestDisallowInterceptTouchEvent(canScrollVertically(-1));
}
if (y < 0.0f) {
this.mLastY = mLastDefY;
getParent().requestDisallowInterceptTouchEvent(canScrollVertically(1));
}
}
} else if (action == 1 || action == 3) {
getParent().requestDisallowInterceptTouchEvent(false);
}
return super.onTouchEvent(motionEvent);
}
}
复制代码
转载于:https://juejin.im/post/5c4ff3d16fb9a049a42f71a9