Android 绑定到片段中文本视图的GestureDetector
因此,我有一个文本视图,它位于我的活动中的片段中。我试图在文本视图中添加手势检测器,以便用户可以执行与之相关的某些操作。我特别想要刷卡或扔东西。我的代码如下:Android 绑定到片段中文本视图的GestureDetector,android,android-fragments,Android,Android Fragments,因此,我有一个文本视图,它位于我的活动中的片段中。我试图在文本视图中添加手势检测器,以便用户可以执行与之相关的某些操作。我特别想要刷卡或扔东西。我的代码如下: public void onViewCreated(View view, Bundle savedInstanceState) { myGestDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureLis
public void onViewCreated(View view, Bundle savedInstanceState)
{
myGestDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener());
TextView mainTextView = (TextView)getView().findViewById(R.id.HourCount);
mainTextView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
myGestDetector.onTouchEvent(motionEvent);
return false;
}
});
}
@Override
public boolean onDown(MotionEvent motionEvent) {
return false;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
Log.d("GESTURES", "onFling: " + event1.toString()+event2.toString());
return true;
}
问题是我不能让任何一个都开火。我已经试过几次了,但是日志没有显示我正在调用onFling。有人知道我做错了什么吗
mainTextView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
myGestDetector.onTouchEvent(motionEvent);
return false; // Return true from here or better return myGestDetector.onTouchEvent(motionEvent);
}
});
通过返回true,android知道您正在使用触摸事件
参考:
编辑:
myGestDetector = new GestureDetector(getActivity(), new GestureListener());
做一个这样的私人课
private class GestureListener implements GestureDetector.OnGestureListener {
public GestureListener() {
}
@Override
public boolean onDown(MotionEvent motionEvent) {
return false;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
return false;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) {
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
Log.d("GESTURES", "onFling: " + event1.toString()+event2.toString());
return true;
}
}
仍然不起作用。没有日志条目表明onFling甚至被调用。那么为什么要使用GestureDetector。SimpleOnGestureListener()请使用您创建的自定义手势侦听器,查看编辑的答案