android - onFling 不工作

标签 android android-viewpager android-recyclerview onfling

我有一个 ViewPager,它包含一个 RecyclerView 我将一个 OnTouchListener 添加到 RecyclerView 中的 ImageView 的项目,尝试使用 GestureDetector.SimpleOnGestureListener 检测触摸,但我无法获取 onFling 事件。我怀疑这是因为 RecyclerViewViewPager 捕获了运动事件。我该如何修复它?
我的代码(虽然它很简单):

public class MyClickListener extends GestureDetector.SimpleOnGestureListener{

public MyClickListener(){

}

@Override
public boolean onDown(MotionEvent e) {
    return false;
}

@Override
public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub
    Log.d("aaa", "show press");
}

@Override
public boolean onSingleTapUp(MotionEvent e) {
    Log.d("aaa", "tapup");
    return false;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
    // TODO Auto-generated method stub
    Log.d("aaa", "scroll");
    return false;
}

@Override
public void onLongPress(MotionEvent e) {
    // TODO Auto-generated method stub
    Log.d("aaa", "long press");
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    // TODO Auto-generated method stub
    Log.d("aaa", "fling");
    return false;
}

设置触摸:

public VoiceItemHolder(View view, GestureDetector.OnGestureListener listener) {
    super(view); 

    icon = (CircleButton) view.findViewById(R.id.icon_iv);
    touchListener = new GestureDetectorCompat(view.getContext(), listener);

    icon.setOnTouchListener(this);

}

@Override
public boolean onTouch(View v, MotionEvent event) {
    if (touchListener != null)
        touchListener.onTouchEvent(event);
    return false;
}

最佳答案

回答我自己的问题感觉有点尴尬:)
如果你在 View 组中有一个 View ,并且你想在内部 View 上获取 onFling,你应该覆盖 View 组的 onInterceptTouchEvent 并返回 false

关于android - onFling 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095346/

相关文章:

android - Viewpager fragment 变成空白

android - 在 Android 中使用 Firebase 在单个 RecyclerView 中获取两个不同的 View

android - 设备重启后如何注册地理围栏?

android - 如何修复多个屏幕尺寸的应用程序

android - RxJava : fromIterable is not emitting all the items

android - 如何在 View 寻呼机中自动更改图像,当它到达最后一张图像时,它应该自动进入第一张图像

Android GoogleMap 跟随我的位置

android - ListView OnScrollListener 不会在 ViewPager 中被调用

java - Android RecyclerView,基于OnClick改变 View 。

java - MySQL 数据未显示在 Android RecyclerView 中(Logcat 错误 : Couldn't load memtrack module)