Por sí solo, el modo táctil es algo muy fácil de entender, ya que simplemente indica si la última interacción del usuario se realizó con la pantalla táctil. Por ejemplo, si está usando un teléfono G1, seleccionar un widget con la bola de seguimiento lo sacará del modo táctil;
...
En el modo táctil, no hay enfoque ni selección. Cualquier elemento seleccionado en una lista de una cuadrícula se deselecciona tan pronto como el usuario ingresa al modo táctil. Del mismo modo, los widgets enfocados se desenfocan cuando el usuario ingresa al modo táctil.
...
Ahora que sabe que el enfoque no existe en el modo táctil, debo explicar que no es del todo cierto. El enfoque puede existir en modo táctil pero de una manera muy especial lo llamamos enfocable en modo táctil. Este modo especial fue creado para widgets que reciben entrada de texto, como EditText o, cuando el filtrado está habilitado, ListView.
...
Enfocable en modo táctil es una propiedad que puede establecer usted mismo desde código o XML. Sin embargo, debe usarse con moderación y solo en situaciones muy específicas, ya que rompe la coherencia con el comportamiento normal de Android. Un juego es un buen ejemplo de una aplicación que puede hacer un buen uso de la propiedad enfocable en modo táctil. MapView, si se usa en pantalla completa como en Google Maps, es otro buen ejemplo de dónde puede usar el enfoque en modo táctil correctamente.
Tenía una aplicación de Google TV que tenía una actividad con una gran cantidad de ImageButtons.
Quería que los ImageButtons fueran seleccionables.
Entonces, si una persona hace clic en ellos con el mouse o el control remoto, solo se seleccionan (resaltado en mi caso). Luego, si el usuario presiona el seleccionado ImageButton, la acción se dispara. Este comportamiento exacto se logró habilitando la focusableInTouchModepropiedad a través del diseño XML.
Todo lo que tenía que hacer era establecer un valor normal onClickListenerpara los ImageButtons y ¡listo!
No he revisado mi aplicación en el teléfono, pero supongo que obtendría un resultado familiar.
EDITAR
¿Cuando?
Le conté un caso de uso que probé: cuando desea que sus botones onClickListeneractiven la acción en su segundo clic, después de haber hecho clic y seleccionado Button.
Utilicé el primer clic para ganar "enfoque" y mostrar una animación de ampliación de zoom en mi botón.
¿Cómo?
Simplemente establezca la propiedad del botón focusableInTouchModeen trueen su archivo de diseño XML.
Enfocado es un estado de visualización y generalmente el enfoque se puede cambiar con trackball y dpad. Su vista puede tener un fondo diferente cuando el estado está enfocado.
Enfocable en el modo táctil permite que la vista se enfoque cuando el usuario toca la vista, un buen ejemplo de este tipo de componente es EditText.
Con Buttono cualquier estado presionado de un componente en el que se puede hacer clic es generalmente lo que le interesa.
"Con Button o cualquier componente en el que se pueda hacer clic, debería centrarse en el estado presionado". ¿Qué? el resto de la respuesta +1
ataulm
3
Los usuarios pueden interactuar con sus dispositivos mediante el uso de teclas o botones de hardware o tocando la pantalla. Tocar la pantalla pone el dispositivo en modo táctil. El usuario puede luego interactuar con él tocando los botones virtuales, imágenes, etc. en pantalla.
Para comprobar si el dispositivo está en modo táctil, llame al método isInTouchMode () de la clase View .
Respuestas:
Se explica en el Blog de desarrolladores de Android: http://android-developers.blogspot.co.at/2008/12/touch-mode.html
Las siguientes citas deben dejarlo claro:
...
...
...
fuente
Te daré mi propia experiencia:
Tenía una aplicación de Google TV que tenía una actividad con una gran cantidad de ImageButtons.
Quería que los ImageButtons fueran seleccionables.
Entonces, si una persona hace clic en ellos con el mouse o el control remoto, solo se seleccionan (resaltado en mi caso). Luego, si el usuario presiona el seleccionado
ImageButton
, la acción se dispara. Este comportamiento exacto se logró habilitando lafocusableInTouchMode
propiedad a través del diseño XML.Todo lo que tenía que hacer era establecer un valor normal
onClickListener
para los ImageButtons y ¡listo!No he revisado mi aplicación en el teléfono, pero supongo que obtendría un resultado familiar.
EDITAR
Le conté un caso de uso que probé: cuando desea que sus botones
onClickListener
activen la acción en su segundo clic, después de haber hecho clic y seleccionadoButton
.Utilicé el primer clic para ganar "enfoque" y mostrar una animación de ampliación de zoom en mi botón.
Simplemente establezca la propiedad del botón
focusableInTouchMode
entrue
en su archivo de diseño XML.fuente
Enfocado es un estado de visualización y generalmente el enfoque se puede cambiar con trackball y dpad. Su vista puede tener un fondo diferente cuando el estado está enfocado.
Enfocable en el modo táctil permite que la vista se enfoque cuando el usuario toca la vista, un buen ejemplo de este tipo de componente es
EditText
.Con
Button
o cualquier estado presionado de un componente en el que se puede hacer clic es generalmente lo que le interesa.fuente
Los usuarios pueden interactuar con sus dispositivos mediante el uso de teclas o botones de hardware o tocando la pantalla. Tocar la pantalla pone el dispositivo en modo táctil. El usuario puede luego interactuar con él tocando los botones virtuales, imágenes, etc. en pantalla.
Para comprobar si el dispositivo está en modo táctil, llame al método isInTouchMode () de la clase View .
fuente