Hallo Ich habe eine Fragment
implementiert, und ich möchte Touch-Ereignis auf meinem Fragment erkennen.Wischgeste in Fragment erkennen
Aber ich bin nicht in der Lage, dieses Ereignis zu erkennen, in der Tat wird kein Ereignis überhaupt erkannt. Es funktioniert gut in Activity
, aber es arbeitet nicht an Fragmenten.
Im Anschluss ist mein Code:
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;
}
}
Sollte es in der onCreateView() Methode nicht gehen? – jos
In der Tat sollte es da gehen @jos. Ich habe diese Lösung dort ausprobiert, und es hat funktioniert! – Mauker
was, wenn wir auf und ab swip ?? –