вы должны dispatchTouchEvent в вашей родительской деятельности, как этот
добавить этот код на родительскую активность:
private List<MyOnTouchListener> onTouchListeners;
@Override
protected void onCreate(Bundle savedInstanceState) {
if(onTouchListeners==null)
{
onTouchListeners=new ArrayList<>();
}
}
public void registerMyOnTouchListener(MyOnTouchListener listener){
onTouchListeners.add(listener);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
for(MyOnTouchListener listener:onTouchListeners)
listener.onTouch(ev);
return super.dispatchTouchEvent(ev);
}
public interface MyOnTouchListener {
public void onTouch(MotionEvent ev);
}
OnSwipeTouchListener:
public class OnSwipeTouchListener{
private final GestureDetector gestureDetector;
public OnSwipeTouchListener (Context ctx){
gestureDetector = new GestureDetector(ctx, new GestureListener());
}
private final class GestureListener extends SimpleOnGestureListener {
//override touch methode like ondown ...
//and call the impelinfragment()
}
public void impelinfragment(){
//this method impelment in fragment
}
//by calling this mehod pass touch to detector
public void onTouch(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}
и добавить этот код фрагмент вы хотели Dispach контакта в нем:
//ontouch listenr
MainActivity.MyOnTouchListener onTouchListener;
private OnSwipeTouchListener touchListener=new OnSwipeTouchListener(getActivity()) {
public void impelinfragment(){
//do what you want:D
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setting for on touch listener
((MainActivity)getActivity()).registerMyOnTouchListener(new MainActivity.MyOnTouchListener() {
@Override
public void onTouch(MotionEvent ev) {
LocalUtil.showToast("i got it ");
touchListener.onTouch(ev);
}
});
}
я использовать этот метод, чтобы получить все проведите вправо или влево в случае фрагмента, не конфликтуя с другим элем в странице .unlike RAX ответа
Я сделал то же самое, что и ваше предложение. Благодаря! – TheDevMan
Я попытался добавить onTouchListener в свою главную группу представлений в OnCreateView(), onAttach() и onResume(), но я получаю NullPointerException ... Где я должен добавить слушателя? –