¿Qué es "tools: context" en los archivos de diseño de Android?

Comenzando con una nueva versión reciente de ADT, he notado este nuevo atributo en los archivos XML de diseño, por ejemplo:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context=".MainActivity" /> 

¿Para qué se utiliza "tools: context"?

¿Cómo sabe siquiera el camino exacto a la actividad que se escribe allí? ¿Se ve en el paquete de la aplicación, dentro del manifiesto?

¿Se limita a las clases que extienden Contexto o sólo actividades? ¿Es utilizable para los elementos de ListView, etc.?

Esta es probablemente la actividad que el editor de UI de herramientas utiliza para procesar su diseño (encontrará el tema correcto basado en la actividad). Esto se documenta aquí (alrededor de la mitad del artículo, suscríbase a esa página para mantenerse al día).

Ese atributo es básicamente la persistencia de la selección "Actividad asociada" sobre el diseño. En tiempo de ejecución, un diseño siempre está asociado a una actividad. Por supuesto, se puede asociar con más de uno, pero al menos uno. En la herramienta, necesitamos saber acerca de esta asignación (que en tiempo de ejecución sucede en la otra dirección, una actividad puede llamar a setContentView (diseño) para mostrar un diseño) con el fin de impulsar ciertas características.

En este momento, lo estamos usando sólo para una cosa: Elegir el tema correcto para mostrar un diseño (ya que el archivo de manifiesto puede registrar temas para usar en una actividad y una vez que conocemos la actividad asociada con el diseño, podemos elegir El tema correcto para mostrar para el diseño). En el futuro, utilizaremos esto para generar funciones adicionales, como representar la barra de acción (que está asociada con la actividad), un lugar para añadir controladores onClick, etc.

La razón de esto es un atributo tools: namespace es que este es sólo un mapeo de diseño para su uso por la herramienta. El diseño en sí puede ser utilizado por múltiples actividades / fragmentos, etc Sólo queremos darle una manera de elegir un enlace de diseño de tal manera que podemos por ejemplo mostrar el tema derecho; Usted puede cambiarlo en cualquier momento, apenas como usted puede cambiar nuestro listview y los atascos del fragmento, el etc.

(Aquí está el changeset completo que tiene más detalles en esto )

Y sí, el enlace de Nikolay enumerado anteriormente muestra cómo el nuevo selector de configuración se ve y funciona

Una cosa más: El espacio de nombres "herramientas" es especial. La herramienta de empaquetado androide sabe ignorarlo, por lo que ninguno de esos atributos se empaquetará en el APK. Lo estamos utilizando para metadatos adicionales en el diseño. Es también donde, por ejemplo, los atributos para suprimir las advertencias de pelusa se almacenan – como herramientas: ignorar.

Según el sitio del proyecto de herramientas de Android :

Herramientas: contexto

Este atributo se establece normalmente en el elemento raíz de un archivo XML de presentación y registra la actividad a la que está asociada la presentación (en el momento del diseño, ya que obviamente un diseño puede ser utilizado por más de un diseño). Esto será utilizado por ejemplo por el editor de diseño para adivinar un tema predeterminado, ya que los temas se definen en el Manifiesto y se asocian con actividades, no con diseños. Puede usar el mismo prefijo de punto como en manifiesto para especificar la clase de actividad sin el nombre completo del paquete de aplicación como prefijo.

 <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> 

Utilizado por: Editores de diseño en Studio & Eclipse, Lint

"Tools: context" es uno de los atributos de diseño que pueden facilitar la creación de diseño en XML en el marco de desarrollo. Este atributo se utiliza para mostrar al marco de desarrollo qué clase de actividad se selecciona para implementar el diseño. Usando "tools: context", Android Studio elige el tema necesario para la vista previa automáticamente.

Si desea obtener más información sobre otros atributos y herramientas útiles para el desarrollo de aplicaciones para Android, eche un vistazo a esta revisión: http://cases.azoft.com/4-must-know-tools-for-effective-android -desarrollo/

tools:context=".MainActivity" thisline se utiliza en el archivo xml que indica que el archivo de origen java se utiliza para acceder a este archivo xml. Significa mostrar esta vista previa xml para los archivos de pericular java.

  • FrameLayout no se puede convertir en android.widget.AbsListView
  • Android Support BottomSheetBehavior no puede ser dinámico?
  • Creación de estilos-v21.xml
  • Android Switch Widget: Configuración de android: la pista hace que el pulgar y la pista no se muestren
  • Android convertir vista XML a mapa de bits sin mostrarlo
  • Android XmlPullParser UTF-8 problema
  • Error de xml de la gaveta de la navegación
  • Cómo obtener la gravedad 'inferior' trabajando en un dibujable en xml
  • Cómo configurar la aplicación RecyclerView: layoutManager = "" de XML?
  • InflateException: Línea de archivo XML binario # 1: Error de inflar clase <unknown> causada por OutOfMemoryError
  • No se puede agregar la dependencia de archivos XStream al proyecto de Android Studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.