studio programacion para herramientas fundamentos desarrollo con avanzado aplicaciones android view

programacion - manual android studio avanzado



Android: ¿cuál es la diferencia entre los estados enfocados, habilitados, presionados y seleccionados? (2)

Miré http://developer.android.com/reference/android/view/View.html para descubrir las diferencias pero no podía entender mucho. Sólo entendí en parte el estado "seleccionado".

¿Alguien puede explicar las diferencias con algunos ejemplos sólidos? Espero que mi pregunta no sea muy vaga. Si lo es, sería genial si alguien me ayudara a mejorarlo porque no sé cómo preguntarlo más claramente.

Gracias de antemano.


Enfocado: (Ventana, Vista) es un destino de eventos de teclado (sí, algunos androides tienen teclado físico) y algunos tienen "bola de desodorante" que generan flechas hacia la izquierda hacia arriba y hacia abajo y hacia abajo.

Activado: el widget (vista) que está activado. Por ejemplo, en la lista de selección múltiple se activan las vistas seleccionadas. Creo que la necesidad de esta etapa adicional en API 11 se debió a la activación de la selección múltiple que contiene casillas de verificación. Por lo tanto, los estados seleccionados y marcados deben separarse.

Seleccionado: solo se aplica a casillas de verificación y otras vistas seleccionables.

La lista completa de estados de vista es (ID de StateSet a la izquierda, marca a la derecha):

R.attr.state_window_focused, VIEW_STATE_WINDOW_FOCUSED, R.attr.state_selected, VIEW_STATE_SELECTED, R.attr.state_focused, VIEW_STATE_FOCUSED, R.attr.state_enabled, VIEW_STATE_ENABLED, R.attr.state_pressed, VIEW_STATE_PRESSED, R.attr.state_activated, VIEW_STATE_ACTIVATED, R.attr.state_accelerated, VIEW_STATE_ACCELERATED, R.attr.state_hovered, VIEW_STATE_HOVERED, R.attr.state_drag_can_accept, VIEW_STATE_DRAG_CAN_ACCEPT, R.attr.state_drag_hovered, VIEW_STATE_DRAG_HOVERED

Ver también:

/** * Changes the activated state of this view. A view can be activated or not. * Note that activation is not the same as selection. Selection is * a transient property, representing the view (hierarchy) the user is * currently interacting with. Activation is a longer-term state that the * user can move views in and out of. For example, in a list view with * single or multiple selection enabled, the views in the current selection * set are activated. (Um, yeah, we are deeply sorry about the terminology * here.) The activated state is propagated down to children of the view it * is set on. * * @param activated true if the view must be activated, false otherwise */ public void setActivated(boolean activated) /** * Dispatch a key event to the next view on the focus path. This path runs * from the top of the view tree down to the currently focused view. If this * view has focus, it will dispatch to itself. Otherwise it will dispatch * the next node down the focus path. This method also fires any key * listeners. * * @param event The key event to be dispatched. * @return True if the event was handled, false otherwise. */ public boolean dispatchKeyEvent(KeyEvent event)


Habilitado -> Interacción con el usuario posible.

Deshabilitado -> La interacción del usuario no es posible.

  • Si desplaza el mouse sobre un widget, se enfoca
  • Si hace una presión hacia abajo (medio clic) en ese widget, se presiona
  • Si presiona hacia abajo y hacia arriba mientras el mouse se encuentra en la misma posición, se selecciona