¿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,... 
  • Hacer diferencias entre setOnClickListener y setOnTouchListener
  • Android: ImageView getID (); Devolver entero
  • Saltar ImageView mientras arrastra. Los valores de getX () y getY () saltan
  • SwipeListView sólo un elemento abierto a la vez
  • Android dragvable ImageVIew
  • Diseño con posición dinámica
  • Gire la vista de disposición de androide sobre su centro usando el oyente táctil
  • OnTouch funciona, pero OnClickListener no?
  • OnTouchListener para toda la pantalla
  • Implementación de la interfaz View.IOnTouchListener
  • Combinación de combinación de Android :: OnTouchListener && OnClickListener
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.