OnTouchListener de una vista vs onTouchEvent
¿Cuál es la diferencia entre el onTouchEvent
una vista:
public class MyCustomView extends View { // THIS : @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } }
Y su onTouchListener
:
- Cómo combinar OnClickListener y OnTouchListener para un ImageButton
- Cómo setOnTouchListener () en un ListPreference?
- ¿Qué sucede realmente si devuelvo falso en un OnTouchListener?
- Android: OnTouch, MotionEvent.ACTION_MOVE no está reconocido?
- Cómo agregar la funcionalidad de deslizar en Android CardView?
MyCustomView myView = (MyCustomView) findViewById(R.id.customview); myView.setOnTouchListener(new View.OnTouchListener() { @Override public void onClick(View arg0) { // do something } });
o
public class MyCustomView extends View { public MyCustomView(Context context, AttributeSet attrs) { // THIS : setOnTouchListener(new View.OnTouchListener() { @Override public void onClick(View arg0) { // do something } }); } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } }
Si esto es diferente,
¿Necesitamos implementar ambos?
¿Cuál es invocado primero?
Si tengo alguna funcionalidad de desplazamiento y zoom, ¿debería implementarlas dentro de onTouchEvent
o onTouchListener
?
- Audífono de cursor de ratón Android como OnTouchListener
- "Presione y mantenga presionado" en Android necesita cambiar estados (selector XML personalizado) usando onTouchListener
- Obtener coordenadas reales de xy de los usuarios
- Android: ¿Qué uso tiene AnchorView de MediaController?
- Combinación de combinación de Android :: OnTouchListener && OnClickListener
- cómo deslizar un evento button onTouch en android
- No puede manejar simultáneamente los eventos de clic y de toque
- Android dragvable ImageVIew
Respuesta de LeeYiHong es correcta, y la otra cosa muy importante es lo que está escrito en http://developer.android.com/reference/android/view/View.OnTouchListener.html :
Se
[ie View.OnTouchListener -> onTouch(View v, MotionEvent event)]
devolución de llamada[ie View.OnTouchListener -> onTouch(View v, MotionEvent event)]
antes de que se dé a la vista el evento táctil[ie onTouchEvent(MotionEvent)]
.
No estoy seguro si usted ha encontrado su respuesta. Pero encontré preguntas relacionadas similares a las tuyas.
"OnTouch funciona en cualquier lugar que quieras (ya sea en actividad o en la vista), siempre y cuando hayas declarado la interfaz y puesto el Listener a la derecha! Por otro lado, onTouchEvent sólo funciona dentro de una Vista!
Para la funcionalidad de desplazamiento y zoom, supongo que onTouchListener será suficiente para completar ambas funciones (y muchas más como la rotación, etc).
- Cómo actualizar la lista del cajón de navegación tan pronto como su abrir / cerrar en Android
- Convertir el número en textview en int