Desactivar todas las interacciones de pantalla táctil durante la animación

Deseo desactivar todas las interacciones de la pantalla táctil mientras se muestra una animación. No deseo utilizar el método setClickable() en los botones al principio o al final de la animación porque hay un gran número de botones. ¿Alguna sugerencia?

En su Actividad, puede anular onTouchEvent y siempre return true; Para indicar que está manejando los eventos táctiles.

Usted puede encontrar la documentación para esa función allí .

Editar Aquí es una forma en la que puede desactivar el toque en toda la pantalla en lugar de manejar cada vista una por una … Primero cambie su diseño actual como este:

 <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > < .... put your current layout here ... /> <TouchBlackHoleView android:id="@+id/black_hole" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout> 

Y luego defina su vista personalizada con algo como esto:

 public class TouchBlackHoleView extends View { private boolean touch_disabled=true; @Override public boolean onTouchEvent(MotionEvent e) { return touch_disabled; } public disable_touch(boolean b) { touch_disabled=b; } } 

Luego, en la actividad, puede desactivar el toque con

 (TouchBlackHoleView) black_hole = findViewById(R.id.black_hole); black_hole.disable_touch(true); 

Y habilítelo de nuevo con

 black_hole.disable_touch(false); 

Respuesta a este problema

for (int i = 1; i < layout.getChildCount(); i++) { TableRow row = (TableRow) layout.getChildAt(i); row.setClickable(false);

Seleccionó todas las filas del diseño de la tabla que tenía todas las vistas y las inhabilitó

Finalmente tomé como una respuesta básica de @Matthieu y hacerlo funcionar de esa manera. Decido publicar mi respuesta porque me lleva quizás 30 minutos entender por qué tengo error.

XML

 <...your path to this view and in the end --> .TouchBlackHoleView android:id="@+id/blackHole" android:layout_width="match_parent" android:layout_height="match_parent" /> 

Clase

Clase pública TouchBlackHoleView extends View {booleano privado touchDisable = false;

 public TouchBlackHoleView(Context context) { super(context); } public TouchBlackHoleView(Context context, AttributeSet attrs) { super(context, attrs); } public TouchBlackHoleView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { return touchDisable; } public void disableTouch(boolean value){ touchDisable = value; } } 

Utilizando

 blackHole = (TouchBlackHoleView) findViewById(R.id.blackHole); blackHole.disableTouch(true); 

Disfrutar

Manera fácil de poner en práctica que es agregar la disposición transaperent sobre ella (la agrega en su altura y ancho del padre del relleno del xml).

En el inicio de la animación: transaparentlayout.setClickable(true);

En el final de la animación: transaparentlayout.setClickable(false);

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.