Fen*_*r04 5 android gesture swipe xamarin.android onfling
我在某种程度上滑动工作,但我有一系列的文字视图和旋转器在屏幕上,似乎我不直接划过其中一个,只是在他们两个之间,它不挑选它很好.总的来说,我认为它不会像iPhone上发生的那样好,我想知道是否有人可以批评我的代码并帮助我优化它.
我正在初始化GesureDectector和GestureListener.这是GestureListener类:
public class GestureListener : Java.Lang.Object, GestureDetector.IOnGestureListener
{
private static int SWIPE_MAX_OFF_PATH = 250;
private static int SWIPE_MIN_DISTANCE = 50;
private static int SWIPE_THRESHOLD_VELOCITY = 200;
private View view;
private Activity act;
public GestureListener(View _view, Activity _act)
{
view = _view;
act = _act;
}
public bool OnDown( MotionEvent e )
{
return true;
}
public bool OnFling( MotionEvent e1, MotionEvent e2, float velocityX, float velocityY )
{
if ( Math.Abs( e1.GetY() - e2.GetY() ) > SWIPE_MAX_OFF_PATH ){
return false;
}
if ( e1.GetX() - e2.GetX() > SWIPE_MIN_DISTANCE && Math.Abs( velocityX ) > SWIPE_THRESHOLD_VELOCITY ){
HandleLeft();
}else if ( e2.GetX() - e1.GetX() > SWIPE_MIN_DISTANCE && Math.Abs( velocityX ) > SWIPE_THRESHOLD_VELOCITY ){
HandleRight();
}
return false;
}
public void OnLongPress( MotionEvent e )
{
}
public bool OnScroll( MotionEvent e1, MotionEvent e2, float distanceX, float distanceY )
{
return true;
}
public void OnShowPress( MotionEvent e )
{
}
public bool OnSingleTapUp( MotionEvent e )
{
return true;
}
private void HandleLeft(){
Male currActivity = (Male)act;
currActivity.GetStrings("Female");
}
private void HandleRight(){
Male currActivity = (Male)act;
currActivity.GetStrings("Results");
}
}
Run Code Online (Sandbox Code Playgroud)
我在OnTouch活动中使用它:
public bool OnTouch(View v, MotionEvent e){
bool handled = false;
if(flingDetector != null){
handled = flingDetector.OnTouchEvent(e);
}
if(v.GetType() == typeof(Spinner)){
return !handled;
}else{
return handled;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |