【发布时间】:2014-04-10 07:24:31
【问题描述】:
您好,我已经实现了Fragment,我想检测片段上的触摸事件。
但我无法检测到该事件,事实上,根本没有检测到任何事件。它在Activity 中运行良好,但不适用于片段。
以下是我的代码:
public class Swipe_Fragment extends Fragment implements
GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener {
private SimpleGestureFilter detector;
private LinearLayout swipLinear;
private static int DEFAULT = 50;
private int brightness;
private GestureDetectorCompat mDetector;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.swipe_screen, container,
false);
swipLinear = (LinearLayout) rootView.findViewById(R.id.swipLinear);
brightness = DEFAULT;
mDetector = new GestureDetectorCompat(getActivity(), this);
// Set the gesture detector as the double tap
// listener.
mDetector.setOnDoubleTapListener(this);
// Detect touched area
// detector = new SimpleGestureFilter(getActivity(), this);
return rootView;
}
@Override
public boolean onDoubleTap(MotionEvent arg0) {
Toast.makeText(getActivity(), "onDoubleTap", Toast.LENGTH_LONG).show();
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
Toast.makeText(getActivity(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Toast.makeText(getActivity(), "onSingleTapConfirmed", Toast.LENGTH_LONG).show();
return false;
}
@Override
public boolean onDown(MotionEvent e) {
Toast.makeText(getActivity(), "onDown", Toast.LENGTH_LONG).show();
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
Toast.makeText(getActivity(), "onFling", Toast.LENGTH_LONG).show();
return false;
}
@Override
public void onLongPress(MotionEvent e) {
Toast.makeText(getActivity(), "onLongPress", Toast.LENGTH_LONG).show();
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(getActivity(), "onScroll", Toast.LENGTH_LONG).show();
return false;
}
@Override
public void onShowPress(MotionEvent e) {
Toast.makeText(getActivity(), "onShowPress", Toast.LENGTH_LONG).show();
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
Toast.makeText(getActivity(), "onSingleTapUp", Toast.LENGTH_LONG).show();
return false;
}
}
【问题讨论】:
标签: android android-fragments gesture