Android 不起作用
我有一个Android 不起作用,android,android-viewpager,android-recyclerview,onfling,Android,Android Viewpager,Android Recyclerview,Onfling,我有一个ViewPager它保存着一个RecyclerView我在RecyclerView的项目中添加了一个OnTouchListener到一个图像视图中,试图使用GestureDetector.SimpleOnGestureListener检测触摸。但是我无法获取onFling事件。我怀疑这是因为RecyclerView或ViewPager捕捉到了运动事件。如何修复它?我的代码(虽然很简单): 设置oun touch: public VoiceItemHolder(View view, Ges
ViewPager
它保存着一个RecyclerView
我在RecyclerView
的项目中添加了一个OnTouchListener
到一个图像视图中,试图使用GestureDetector.SimpleOnGestureListener
检测触摸。但是我无法获取onFling
事件。我怀疑这是因为RecyclerView
或ViewPager
捕捉到了运动事件。如何修复它?我的代码(虽然很简单):
设置oun touch:
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;
}
回答我自己的问题时感到有点尴尬:)
如果您在视图组中有一个视图,并且希望在内部视图上获得
onFling
,则应覆盖视图组的onInterceptTouchEvent
,并返回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;
}