Próbuję przesuwać palcem w górę i przesuwać palcem gesty pracujące nad fragmentem. To samo działa dobrze na działalności. W Fragment mam problem z dispatchTouchEvent. Jak mogę wysłaćTouchEvent w Fragment? Czy istnieje równoważny sposób osiągnięcia tego?dispatchTouchEvent w Fragment w systemie Android
Odpowiedz
Jeśli Twoim celem jest wykrywanie/obsługiwanie przeciągania, dodaj detektor zdarzeń dotykowych w widoku fragmentu po utworzeniu widoku.
Fragmenty są dołączane do działania, nie zastępując działania. Nadal możesz przesłonić dispatchTouchEvent w swojej macierzystej aktywności fragmentu i przekazać wszelkie działania z tego miejsca.
Na przykład:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag("MY_FRAGMENT_TAG");
myFragment.doSomething();
return super.dispatchTouchEvent(ev);
}
trzeba dispatchTouchEvent w swojej działalności macierzystej jak tego
dodać ten kod do działalności jednostki dominującej:
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);
}
i dodać ten kod do fragmentacji chcesz Dispach dotyk w nim:
//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);
}
});
}
użyć tej metody, aby uzyskać wszystkie bezstykowa w prawo lub lewo, w przypadku fragmentu bez sprzeczne z innymi ELEM na stronie .unlike RAX odpowiedź
spowodowało to wykonanie przesłuchania dotykowego przy użyciu wszystkich elementów sterujących –
- 1. android dispatchTouchEvent dostać podsłuchu widok
- 2. Pobierz kontekst aplikacji w Fragment w systemie Android?
- 3. Android ListView w Fragment
- 4. ArrayAdapter w Fragment - Android
- 5. Fragment android: fragment Nie można utworzyć wystąpienia fragment
- 6. Android Zagnieżdżony Fragment Podejście
- 7. Android - koniec aktywność fragment
- 8. Android 1.6 & Fragment & Tabhost
- 9. Android Fragment wyświetlanie stanu w przyjmującym zakładce
- 10. Android coraz fragment, który jest w FragmentPagerAdapter
- 11. Jak wyczyścić Fragment backstack w android
- 12. Określić fragment backstack stan pusty w android
- 13. MapView w Fragment (Android 4.0 lub nowszy)
- 14. Gdzie/Jak uzyskaćIntent(). GetExtras() w Android Fragment?
- 15. Android SupportMapFragment wewnątrz Fragment
- 16. Android ViewPager Odśwież fragment
- 17. Android Fragment animacji onResume
- 18. Android fragment realizacja problem
- 19. oddzwonienie w systemie Android?
- 20. Facebook android fragment logowanie
- 21. Jak zrobić przewijaną zakładkę w systemie Android?
- 22. Zmiana pozycji w systemie Android Viewpager
- 23. Zapobieganie odzyskiwaniu fragmentów w systemie Android
- 24. Skalowanie/przekształcanie obrazu w systemie Android nie zmienia obszaru klikalnego
- 25. getMapAsync() w Fragment
- 26. Android - tworzysz fragment kilka razy?
- 27. Android Open Fragment na ViewPager
- 28. Obrócony widok OpenStreetMap - jak przesuwać mapę w kierunku przesunięcia palca po obrocie w systemie Android?
- 29. Algorytm Floodfill w systemie Android
- 30. Selekcja dat w systemie Android
Zrobiłem to samo, co twoja sugestia. Dzięki! – TheDevMan
Próbowałem dodać onTouchListener do mojej głównej grupy view w OnCreateView(), onAttach() i onResume(), ale dostaję NullPointerException ... Gdzie powinienem dodać detektor? –