最新写的东西需要重视用户体验所以记录一下安卓中手势操作的使用:
1 activity中实现下拉打开新的activity
首先我查阅资料见到两个类分别是GestureDetector和GestureDetectorCompat两个类。这里我使用的是GestureDectector。
代码如下
导入包:
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.SimpleOnGestureListener;
声明
private GestureDetector gestureDetector;
在onCreate里定义对象
gestureDetector=new GestureDetector(this,
new SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1,MotionEvent e2,
float velocityX,float velocityY){
if(e2.getY()-e1.getY()>LARGE_MOVE){Toast.makeText(getApplicationContext(), "huadong",
Toast.LENGTH_LONG).show();
Intent intent=new Intent(MainActivity.this,EditActivity.class);
//定义一个新的intent 跳转到编辑新事项的Actvity
startActivity(intent);
//调用这个Intent 并打开
MainActivity.this.finish();
return true;
}
return false;
}
});
这里就是简单的下拉打开新的activity
接下来就是用新的识别替代原来的识别
public boolean onTouchEvent(MotionEvent event){
return gestureDetector.onTouchEvent(event);
}
但是我在之后遇到了问题,我在实际APP中无法应用这个操作,最后尝试发现是
listView的滑动操作和Acivity的滑动操作冲突了,导致失效
查阅资料以后发现应该这样修改:
重载dispathchTouchEvent方法。如下
public boolean dispatchTouchEvent(MotionEvent event)
super.dispatchTouchEvent(event);
return gestureDetector.onTouchEvent(event);
}
这样可以解决冲突问题。