2014-12-31 46 views
0

我正在使用Xamarin,并且我有一个只有FrameLayout的Activity。在Activity中,我还有一些ActionBar选项卡(在此链接帮助下创建的: http://developer.xamarin.com/guides/android/user_interface/tab_layout/actionbar/),它用我们的FrameLayout替换了存在顶部的一个小TextView和屏幕其余部分的ListView的片段。Xamarin手势检测器OnFling和ListView

现在我想有标签之间刷卡的能力,我发现从这个链接的例子:http://developer.xamarin.com/recipes/android/other_ux/gestures/create_a_gesture_listener/

的问题是,它仅在TextView的,而不是ListView的反应上刷卡。

在我的主要活动,我宣布

private GestureDetector _gestureDetector; 
private int SWIPE_MAX_OFF_PATH = 250; 
private int SWIPE_MIN_DISTANCE = 120; 
private int SWIPE_THRESHOLD_VELOCITY = 200; 

,并在OnCreate中我有这样的:在我的主要活动

_gestureDetector = new GestureDetector(this); 

我的刷卡功能:

public override bool OnTouchEvent(MotionEvent e) 
{ 
    _gestureDetector.OnTouchEvent(e); 
    return false; 
} 
public bool OnDown(MotionEvent e) { 
    return true; 
} 
public bool 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, dvs gå till höger 
     if ((e1.GetX() - e2.GetX() > SWIPE_MIN_DISTANCE) && (Math.Abs (velocityX) > SWIPE_THRESHOLD_VELOCITY)) { 
      Toast.MakeText (this, "Left Swipe", ToastLength.Short).Show(); 
     } 
     // left to right swipe, dvs gå till vänster 
     else if ((e2.GetX() - e1.GetX() > SWIPE_MIN_DISTANCE) && (Math.Abs (velocityX) > SWIPE_THRESHOLD_VELOCITY)) { 
      Toast.MakeText (this, "Right Swipe", ToastLength.Short).Show(); 
     } 
    } catch (Exception ex) { 
     Console.WriteLine (ex.Message); 
    } 
    return true; 
} 
public void OnLongPress(MotionEvent e) {} 
public bool OnScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
    return false; 
} 
public void OnShowPress(MotionEvent e) {} 
public bool OnSingleTapUp(MotionEvent e) { 
    return false; 
} 

我搜索,搜索,但只发现Java的例子,我不能转换为C#和Xamarin。该怎么办?是否有更多的代码需要查看?

回答

0

如果您使用ViewPager来支持刷卡功能,则需要使用稍微不同的方法。只要看看Xamarin样本中的这个example,它有点儿错误,但你可以从中得到它的要点。

+0

滑动的东西像一个魅力工作,但正如你所说,它有点bug,它崩溃时,方向改变例如(缺少GenericViewPagerFragment的默认构造函数),我无法修复。而且我也不知道如何从ActionBar中的刷新按钮更新我的ListView。 – hericson