首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin GestureDetector OnFling和ListView

Xamarin GestureDetector OnFling和ListView
EN

Stack Overflow用户
提问于 2014-12-31 21:26:05
回答 1查看 2.3K关注 0票数 0

我正在使用Xamarin,并且我有一个只有一个FrameLayout的活动。在这个活动中,我还有一些ActionBar标签(通过这个链接创建:http://developer.xamarin.com/guides/android/user_interface/tab_layout/actionbar/ ),它用位于顶部的一个小TextView和屏幕其余部分的ListView的片段替换我的FrameLayout。

现在,我希望能够在选项卡之间滑动,我从这个链接中找到了一个示例:http://developer.xamarin.com/recipes/android/other_ux/gestures/create_a_gesture_listener/

问题是,它只在TextView上滑动时才有反应,而不是在ListView上。

在我的主要活动中,我声明

代码语言:javascript
复制
private GestureDetector _gestureDetector;
private int SWIPE_MAX_OFF_PATH = 250;
private int SWIPE_MIN_DISTANCE = 120;
private int SWIPE_THRESHOLD_VELOCITY = 200;

在OnCreate中,我有这样的功能:

代码语言:javascript
复制
_gestureDetector = new GestureDetector(this);

以及我的主要活动中的swipe功能:

代码语言:javascript
复制
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; 
}

我找了又找,但只找到了一些我不能转换成C#和Xamarin的Java示例。该怎么办呢?您还需要查看更多代码吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-01 19:21:29

您需要使用一种略有不同的方法来使用ViewPager来支持滑动功能。只要看看Xamarin示例中的这个example,它有点but,但你可以从中得到要点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27721803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档