¿Cómo manejar eventos de toque en un fragmento?

Estoy construyendo una interfaz donde necesito procesar eventos táctiles . En particular, sería capaz de permitirles sólo a un área confinada en un fragmento. Para entender mejor el problema, respetar los estándares y el objetivo de mi aplicación, planeé el cajón de navegación, que asume la presencia de muchos fragmentos (en lugar de actividades). Una actividad con eventos táctiles se implementa muy fácilmente, por otro lado he leído en Internet que con los fragmentos puede convertirse en un problema .

Mi aplicación, a nivel arquitectónico, es la siguiente: – MainActivity.java – NavigationDrawer.java – TestFragment.java (para un solo fragmento ahora, a la espera de resolver el problema)

No he encontrado una solución o un tutorial que explique cómo hacerlo bien (o cómo solucionar el problema). Entonces le pregunto, simplificando el problema para " habilitar un evento táctil en un fragmento (getPressure () en este caso) ". A continuación se presentan algunas piezas de código que pueden ayudar a resolver el problema:

TestFragment

public class TestFragment extends Fragment { private static final String ARG_SECTION_NUMBER = "section_number"; public static TestFragment newInstance(int sectionNumber) { TestFragment fragment = new TestFragment(); Bundle args = new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber); fragment.setArguments(args); return fragment; } public TestFragment() {} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_test, container, false); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public boolean onTouchEvent(MotionEvent event) { // Here I want to return the press value (0 to 1) } } 

¿Cómo asociar al oyente a todo el fragmento? Y en el caso de un área en particular? Finalmente, ¿cómo puedo devolver el valor de la presión en la pantalla?

Muchas gracias en el consejo! 🙂

No estoy seguro si he entendido su problema, pero intentaré contestar esto. Así que para obtener eventos de contacto en el fragmento que haría esto:

-en su fragmento onCreateView:

 View view = inflater.inflate(R.layout.fragment_test, container, false); view.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_MOVE){ //do something } return true; } }); //here the rest of your code return view; 

Y puede comprobar para diferentes MotionEvents en onTouch, por ejemplo:

 MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP,... 
  • Android deja de enviar eventos onTouch
  • ¿Cómo puedo mantener los eventos de ontouch manejados por un widget incluso si las coordenadas de tacto ya no están dentro del widget, en android
  • Android: Detectar el botón ACTION_UP fuera del evento
  • Incorporación de ListView dentro de la Galería
  • Android: pasar el evento de gestos a otra vista
  • Cómo setOnTouchListener () en un ListPreference?
  • OnTouchListener de una vista vs onTouchEvent
  • Cómo implementar tanto ontouch y también onfling en un mismo listview?
  • Limitación de Drag de ImageView en Android
  • Método único para implementar onTouchListener () para varios botones
  • PopupWindow TouchInterceptor no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.