package com.outsider.view;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;
public class VerticalScrollView extends ScrollView {
private OnScrollViewScrollListener onScrollViewScrollListener;
public VerticalScrollView(Context context) {
super(context);
}
public VerticalScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public VerticalScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public OnScrollViewScrollListener getOnScrollViewScrollListener() {
return onScrollViewScrollListener;
}
public void setOnScrollViewScrollListener(OnScrollViewScrollListener onScrollViewScrollListener) {
this.onScrollViewScrollListener = onScrollViewScrollListener;
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent ev) {
if(this.onScrollViewScrollListener != null){
this.onScrollViewScrollListener.onScrollChanged(ev);
}
return super.onTouchEvent(ev);
}
}
package com.outsider.view;
import android.view.MotionEvent;
public interface OnScrollViewScrollListener {
void onScrollChanged(MotionEvent ev);
}
VerticalScrollView scroll = (VerticalScrollView) findViewById(R.id.scrollView);
scroll.setOnScrollViewScrollListener(new OnScrollViewScrollListener() {
@Override
public void onScrollChanged(MotionEvent event) {
Log.i("mytrace", "onscrollchange");
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
prev.set((int) event.getX(), (int) event.getY());
break;
}
case MotionEvent.ACTION_UP: {
scrollFlag = false;
break;
}
case MotionEvent.ACTION_MOVE: {
float moveX = prev.x - event.getX();
if (moveX > 150 && moveX < 5000) {
if (!scrollFlag) {
if (VacabularManager.getVacabulars().size() <= 0) {
fire();
Toast.makeText(MainActivity.this, "请先导入词库文件", Toast.LENGTH_LONG).show();
} else {
VacabularManager.getVacabulars().next();
show();
}
scrollFlag = true;
}
} else if (moveX < -150 && moveX > -5000) {
if (!scrollFlag) {
if (VacabularManager.getVacabulars().size() <= 0) {
fire();
Toast.makeText(MainActivity.this, "请先导入词库文件", Toast.LENGTH_LONG).show();
} else {
VacabularManager.getVacabulars().pre();
show();
}
scrollFlag = true;
}
}
}
}
}
});
layout.xml
<com.outsider.view.VerticalScrollView
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:fadingEdge="vertical|horizontal"
android:scrollbars="horizontal|vertical" >
</com.outsider.view.VerticalScrollView>