【问题标题】:onFling not workingonFling 不工作
【发布时间】:2015-01-22 17:45:44
【问题描述】:

我有一个ViewPager,其中包含一个RecyclerView 我将OnTouchListener 添加到RecyclerView 项目内的图像视图中,尝试使用GestureDetector.SimpleOnGestureListener 检测触摸,但我无法获得@ 987654326@ 事件。我怀疑这是因为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;
}

【问题讨论】:

    标签: android android-viewpager android-recyclerview onfling


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多