package qule.gino.zhihuread.ui.widget; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.VelocityTracker; import android.widget.ListView; import qule.gino.zhihuread.BuildConfig; /** * Created by Administrator on 13-5-21. */ public class RefreshListView extends ListView { private static final String TAG = "RefreshListView"; public static final int LEFT_DIRECTION = 1; public static final int RIGHT_DIRECTION = 2; private VelocityTracker mVelocityTracker; private boolean mTrack = false; private int mLastDirectoin = -1; private float mX; public RefreshListView(Context context) { super(context); } public RefreshListView(Context context, AttributeSet attrs) { super(context, attrs); } public RefreshListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { if (BuildConfig.DEBUG) { Log.d(TAG, " - onTouchEvent - " + event.getAction()); } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mX = event.getX(); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: if (mX - event.getX() > 0) { Log.d(TAG, "在右边刷新"); mLastDirectoin = RIGHT_DIRECTION; } else { mLastDirectoin = LEFT_DIRECTION; Log.d(TAG, "在左边刷新"); } break; } return super.onTouchEvent(event); } public int getLastDirection(){ return mLastDirectoin; } }