android - from - fragment interaction listener
Diferencia entre enfocable y enfocable InTouchMode? (4)
Dar un ejemplo y explicarlos en detalle
Te daré mi propia experiencia:
Tenía una aplicación de Google TV que tenía una actividad con una gran cantidad de ImageButtons.
Yo 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 ImageButton
seleccionado, se desencadena la acción. Este comportamiento exacto se logró habilitando la propiedad focusableInTouchMode
través del diseño XML.
Todo lo que tenía que hacer era establecer un onClickListener
ordinario para los ImageButtons y ¡listo!
No he comprobado mi aplicación en el teléfono, pero supongo que ofrecerá un resultado familiar.
EDITAR
¿Cuando?
Le he dicho un caso de uso que he probado: cuando desea que su Botón onClickListener
active la acción en su segundo clic, después de que haya hecho clic por primera vez y haya seleccionado el Button
.
Usé el primer clic para obtener "foco" y mostrar una animación de ampliación de zoom en mi botón.
¿Cómo?
Simplemente configure la propiedad del botón focusableInTouchMode
en true
en su archivo de diseño XML.
Quiero saber la diferencia real entre ellos ... ¿Cuándo se debe usar cada uno, cómo se debe usar cada uno y en qué situaciones cada uno es útil?
Da algunos ejemplos y explícalos en detalle.
Enfocado es un estado para ver y generalmente el enfoque se puede cambiar con trackball y dpad. Su vista puede tener diferentes antecedentes cuando el estado está enfocado.
Enfocable en modo táctil permite ver el enfoque cuando el usuario toca la vista, un buen ejemplo de este tipo de componente es EditText
.
Con Button
o cualquier componente pulsado, el estado presionado suele ser lo que le interesa.
Los usuarios pueden interactuar con sus dispositivos mediante el uso de teclas o botones de hardware o tocando la pantalla. Al tocar la pantalla, el dispositivo entra en modo táctil. El usuario puede interactuar con él tocando los botones virtuales en pantalla, las imágenes, etc.
Para verificar si el dispositivo está en modo táctil, llame al método isInTouchMode() la clase View.
Se explica en el Blog de desarrolladores de Android: http://android-developers.blogspot.co.at/2008/12/touch-mode.html
Las siguientes citas deberían dejarlo en claro:
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, al seleccionar un widget con la bola de seguimiento lo sacará del modo táctil;
...
En el modo táctil, no hay foco 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 sabes que el foco no existe en el modo táctil, debo explicar que no es del todo cierto. El foco puede existir en modo táctil, pero de una manera muy especial lo llamamos enfocable en modo táctil. Este modo especial se creó para widgets que reciben entrada de texto, como EditText o, cuando se habilita el filtrado, ListView.
...
Enfocable en modo táctil es una propiedad que puedes configurar tú 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 se puede utilizar de forma correcta el modo táctil.