2012-03-12 10 views
11

Tengo una vertical LinearLayout. Actuará como una barra de salto rápido. Por lo tanto, el ancho es muy pequeño y la altura coincide con casi toda la altura de la pantalla. Cuando lo toco y me muevo dentro, todo está bien. Eso significa que se llama mi onTouchEvent() y puedo obtener (y seguir) la posición del dedo. Pero dado que la barra no es muy ancha, el usuario puede desplazarse fácilmente fuera de esa vista. Por lo tanto, sería necesario permitir que el usuario continúe el movimiento incluso cuando esté fuera de la vista. De hecho, lo mismo que hace un ListView.Cómo ampliar el área táctil de una vista

No sé por qué un ListView 's onTouchEvent() se llama incluso cuando fuera de la ListView, pero no en el caso de mi LinearLayout. Lo seguí hasta el dispatchTouchEvent(). Aquí la situación es la misma que el método siempre se llama para el ListView (incluso cuando está afuera) pero no en el caso del LinearLayout (cuando se mueve fuera).

Estaría muy feliz si alguien pudiera darme una pista. ¡Muchas gracias!

Bernd

+0

posible duplicado de [¿Hay algún ejemplo de cómo usar TouchDelegate en Android para aumentar el tamaño del destino de clic de una vista?] (Http://stackoverflow.com/questions/1343222/is-herehere-an-example- of-how-to-use-a-touchdelegate-in-android-to-increase-the-siz) –

Respuesta

7

Usted podría utilizar la función de Android TouchDelegate. Admite un área táctil más grande para vistas individuales. Aquí está un ejemplo: https://stackoverflow.com/a/1343796/636579

+2

Sí, ya vi esa publicación, pero por lo que yo entiendo, solo es posible extenderla al tamaño del siguiente padre . Eso significa que, para obtener la altura de la pantalla completa, se debe evaluar todo el árbol de la vista. No pude averiguar cómo ListView hace este truco. – Bernd

5

pienso que usted debe tratar de aumentar el relleno de una visión desde todos los lados de modo que cuando el usuario hará clic cerca del punto de vista en el área de relleno del método ontouch o onClick se llamará

android:padding="10dp" 
Cuestiones relacionadas