OK! here is (basically) how I did it:
MyActivity.java:
private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MusicShaker.MyOnTouchListener>(10);
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
for (MyOnTouchListener listener : onTouchListeners) {
listener.onTouch(ev);
}
return super.dispatchTouchEvent(ev);
}
public void registerMyOnTouchListener(MyOnTouchListener listener){
onTouchListeners.add(listener);
}
public interface MyOnTouchListener {
public void onTouch(MotionEvent ev);
}
Fragment1.java:
((MyActivity)getActivity()).registerMyOnTouchListener(new MyActivity.MyOnTouchListener() {
@Override
public void onTouch(MotionEvent ev) {
Log.d("", "Fragment1 got it");
}
});
Fragment2.java:
((MyActivity)getActivity()).registerMyOnTouchListener(new MyActivity.MyOnTouchListener() {
@Override
public void onTouch(MotionEvent ev) {
Log.d("", "Fragment2 got it");
}
});
This works, but if someone has a better solution, I always listen =)
: , MotionEvent x y , rawX rawy ( View).