首先感谢下我看到的那篇文章作者 当然不记得名字了 对不住了
要实现左右滑动来切换tab或者任务 分别继承了TabActivity或者Activity 然后自己实现OnTouchListener, OnGestureListener这两个接口
介绍重点函数:
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mGestureDetector.onTouchEvent(event);
}
看名字大概就知道是检测对屏幕操作的函数 用来返回手指在屏幕上的操作细节
mGestureDetector是用系统函数GestureDetector生成的对象
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int total=tabHost.getTabWidget().getChildCount();
int current=tabHost.getCurrentTab();
// TODO Auto-generated method stub
if (e1.getX()-e2.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Fling left
Toast.makeText(this, "向左手势", Toast.LENGTH_SHORT).show();
//在这里添加向左滑动屏幕完成的任务 下面是设置tab的当前项也就实现的切换功能
//当然如果是
//Intent intent = new Intent(ViewSnsActivity.this, UpdateStatusActivity.class);
// startActivity(intent);
//就能完成其他Activity的切换
tabHost.setCurrentTab(current+1>total?total-1:current+1);
} else if (e2.getX()-e1.getX() > FLING_MIN_DISTANCE
&& Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Fling right
tabHost.setCurrentTab(current-1<0?0:current-1);
//同向左滑动
Toast.makeText(this, "向右手势", Toast.LENGTH_SHORT).show();
}
return false;
}
其中
FLING_MIN_DISTANCE这个是用来定义滑动的最短距离 根据他来判断是不是滑动了 然后作出决定
FLING_MIN_VELOCITY移动速度 慢了也不反应 相当于降噪吧复制下来 以后忘了可以再来看