Android左右滑动swipe处理

实现了tabHost的四个tab滑动切换。如若改为别的,实现方式大致一样。

private GestureDetector detector = new GestureDetector(
new GestureDetector.SimpleOnGestureListener() {

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
if ((e2.getRawX() - e1.getRawX()) > 80) {
showPre();
return true;
}

if ((e1.getRawX() - e2.getRawX()) > 80) {
showNext();
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}

});

@Override
public boolean onTouchEvent(MotionEvent event) {
detector.onTouchEvent(event);
return super.onTouchEvent(event);
}

/**
* 当前页面索引
*/
int currentTab = 0;

/**
* 显示下一个页面
*/
protected void showNext() {
// 三元表达式控制4个页面的循环.
mTabHost.setCurrentTab(currentTab = currentTab == 3 ? currentTab = 0 : ++currentTab);

}

/**
* 显示前一个页面
*/
protected void showPre() {
// 三元表达式控制4个页面的循环.
mTabHost.setCurrentTab(currentTab = currentTab == 0 ? currentTab = 3 : --currentTab);

}

你可能感兴趣的:(Android左右滑动swipe处理)