Establecer GestureDetector en todas las vistas de niños
Me gustaría agregar un GestureDetector a todas las vistas (ver grupos) de una actividad sin asignarla manualmente a cada vista. En este momento onFling () sólo se activa al pasar por el fondo pero no al deslizar por ejemplo button1.
package com.app.example; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.LinearLayout; public class ExampleActivity extends Activity { Context mContext = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; LinearLayout parent = new LinearLayout(mContext); parent.setOrientation(LinearLayout.VERTICAL); parent.setBackgroundColor(Color.RED); Button button1 = new Button(mContext); button1.setText("Button 1"); Button button2 = new Button(mContext); button2.setText("Button 2"); parent.addView(button1); parent.addView(button2); final GestureDetector gestureDetector = new GestureDetector( new MyGestureDetector()); parent.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { gestureDetector.onTouchEvent(event); return true; } }); setContentView(parent); } } class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // right to left if(e1.getX() - e2.getX() > 10 && Math.abs(velocityX) > 20) { Log.i("onFling", "right to left"); return false; // left to right } else if (e2.getX() - e1.getX() > 10 && Math.abs(velocityX) > 20) { Log.i("onFling", "left to right"); return false; } return false; } }
- Android ViewGroup.setScaleX () hace que la vista se recorte
- Android - Ocultar vistas
- Android ViewGroup crash: Intenta leer desde el campo 'int android.view.View.mViewFlags' en una referencia de objeto nulo
- Relación de aspecto fija
- Nueve parches en un grupo de vistas personalizado
- Barra de desplazamiento a ViewGroup personalizado
- Agregar vista al grupo de vistas xml existente en el código
- Disposición personalizada de Android - onDraw () nunca se llama
- Evento de inflado de acabado de ViewGroup
- Generando un LayoutParams basado en el tipo de padre
- Diferencia entre View y ViewGroup en Android
- NullPointerException: Intento de leer del campo 'int android.view.View.mViewFlags'
- Inflación del diseño XML en un grupo de vistas personalizado
Puede utilizar un GestureOverlayView para ver un mensaje previo de stackoverflow sobre cómo usarlo.
- Controlar el acceso de las API de terceros a los recursos del sistema Android?
- Android Añadir un nuevo calendario