toques tactil samsung quitar pantalla moto desactivar cómo como android android-layout android-intent android-emulator android-fragments

android - tactil - Desactivar el toque de varios dedos en mi aplicación



zoom en pantalla android (3)

Podría colocar al usuario un GestureOverlayView alrededor de toda la pantalla y solo permitir que el primer evento táctil sea procesado por las vistas inferiores.

Debe configurar un onTouchListener en esta vista transparente, que hace algo como esto:

gestureOverlayView.setOnTouchListener(new View.OnTouchListnener(){ @Override public boolean onTouch(View v, MotionEvent e){ // True means the event is ignored by the overlayed views return e.getPointerCount() > 1 ? true : false; } }

Esta pregunta ya tiene una respuesta aquí:

Mi aplicación usa una Actividad para alojar varios fragmentos. Cada vez que se muestra un fragmento en la pantalla del teléfono, la vista de cada fragmento consta de varios iconos de imagen.

Actualmente, el usuario puede presionar dos íconos simultáneamente con dos dedos (con cada fingure presionar un ícono). Quiero desactivar esta función multitáctil en mi aplicación para permitir que solo un ícono de prensa surta efecto a la vez .

Intenté las siguientes maneras:

Camino 1: en el tema de mi aplicación, agregué:

<item name="android:windowEnableSplitTouch">false</item>

Camino 2: En Android Manifiesto xml, agregué:

<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />

Camino 3: en mi actividad:

@Override public boolean onTouchEvent(MotionEvent event) { if(event.getPointerCount() > 1) { System.out.println("Multitouch detected!"); return true; } else return super.onTouchEvent(event); }

Lamentablemente, ninguna de mis soluciones funciona. Entonces, ¿cómo puedo desactivar la función multitáctil en mi aplicación?


Por caso: tiene varios botones y desea seleccionar solo un botón. En padres (NO RAIZ, solo padre de hijo) de botones, en sus parámetros xml agregar

android: splitMotionEvents = "falso"

Y eso es. Ejemplo:

<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:splitMotionEvents="false" <-----------!!! > <Button android:id="@+id/button_main_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button1" /> <Button android:id="@+id/button_main_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button2" /> <Button android:id="@+id/button_main_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button3" /> </LinearLayout>

Por cierto. Cuando tiene 2 linearlayout con 3 botones por diseño, debe establecer este splitMotionEvents en esos dos diseños y también en el padre de ese 2 linearLayouts. De lo contrario, solo podrá hacer clic en un botón por diseño (suma = 2 en ese momento). Espero que lo obtengas. :)

Ninguna de las otras soluciones no funcionó para mí o era demasiado débil.


Sí, también me enfrenté a este problema una vez y encontré la solución que android: splitMotionEvents = "false", esto solo funcionará para dirigir a los niños de un diseño.

Ejemplo :

Como si crearas dos diseños A y B e In A tienes dos botones b1, b2 En B tienes dos botones b3, b4

ambos, A y B, están en el Diseño principal. Primero, debe aclarar que estos botones no son hijos directos del Diseño principal.

En el Diseño principal solo tienen dos hijos A y B

Que si agrega android: splitMotionEvents = "false" al Diseño principal, el toque múltiple no funcionará en el Diseño A y el Diseño B, pero funcionará en cada botón b1, b2, b3, b4 porque no son hijos directos del Diseño principal

Por lo tanto, si quieres que el toque múltiple no funcione en estos botones también, entonces debes agregar android: splitMotionEvents = "false" a cada diseño por separado

Hay algunos casos:

1). Si solo agrega android: splitMotionEvents = "false" en el Layout A, no podrá tocar el botón b1 y el botón b2 al mismo tiempo, pero puede tocar el botón b1 o b2 y el botón b3 o b4 al mismo tiempo.

2). justo enfrente del caso 1.

3). Pero si agrega android: splitMotionEvents = "false" en ambos diseños, no podrá tocar los dos botones de la pantalla al mismo tiempo.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:splitMotionEvents="false" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:splitMotionEvents="false" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b2" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:splitMotionEvents="false" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b3" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="b4" /> </LinearLayout>

Creo que podría ser útil para ti.