【发布时间】:2011-03-28 07:59:07
【问题描述】:
我正在使用 html、css 和 javascript 开发一个 Android 应用程序。 我的应用程序依赖于 Phonegap 框架。 该应用程序由相当数量的本地页面组成。在里面 我正在尝试处理 Android 上的滑动手势事件的应用程序 移动并根据滑动方向移动页面。即如果 用户向左滑动应用程序必须调用上一页, 然后如果用户向右滑动,则应用程序将转发 用户转到下一页。
我可以使用 Android 的原生 java 来做到这一点。但问题是, 在调用页面期间,我正在为 请求的页面。但会发生什么是当前页面采用幻灯片 效果不是请求的页面,就是幻灯片之后的效果 完成,出现请求的页面:( 我正在寻找一种机制来使效果影响 请求的本地页面不是当前页面。我试着推迟 动画持续时间,但它变得太慢了,所以变得无聊 顺便说一句,没有做到这一点。
我希望你能帮助我解决这个问题,或者向我提出任何建议 实现该效果的方法或机制。
这是我的代码:
public class App extends DroidGap {
/** Called when the activity is first created. */
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
super.loadUrl("file:///android_asset/www/index.html");
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
appView.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_left));
appView.goBack();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
appView.startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_right_in));
appView.goForward();
}
} catch (Exception e) {
// nothing
}
return false;
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent e){
super.dispatchTouchEvent(e);
return gestureDetector.onTouchEvent(e);
}
}
【问题讨论】:
-
请添加一些代码来解释您到目前为止所做的事情..
-
我已经更新了帖子,并包含了用于处理滑动事件的源代码以及我为前进和前进所做的工作
-
永远不要按原样转储代码。删除不需要/注释的部分并保持整洁。
-
@Tushar Vengurlekar 很抱歉这个错误,请发现它现在更整洁和可读:) 希望你能帮助我解决这个问题
-
你如何使用 Viewlipper 滑动页面?
标签: android webview slider cordova swipe