gpt4 book ai didi

android - onFling 不工作

转载 作者:搜寻专家 更新时间:2023-11-01 07:55:39 30 4
gpt4 key购买 nike

我有一个 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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com